1、sql查询文件缓存使用

 $tokens = DB::select('id', 'token')
->from('member')
->where('id', 'in', $users)
->cached(120)
->execute()
->as_array();

文件缓存的思路:采用sha($sql)的方法确定缓存key,value为serialize($result),expire通过time()-filemtime($file)实现。文件名作为key,优化方案,可以取key前2位分目录存放缓存文件。

root@DESKTOP-I4OIMJC /cygdrive/e/html/tproject/framebota/runtime/com.bota.work/cache/2b
# ll
总用量 1.0K
----------+ 1 root ???????? 322 6月 5 18:55 2bdb17d58721d378bfec480a7434f2716fdd04c1.txt

2、kohana配置文件读取

E:\html\tproject\framebota\platform\config\vendor\tongcheng\config.php
$config = Kohana::$config->load('vendor\tongcheng\config');

E:\html\tproject\framebota\platform\config\database.php

$config = Kohana::$config->load('database')->default

E:\html\tproject\framebota\service\flight\config\flight.php

$conf = Kohana::$config->load('flight');

3、kohana加载文件

E:\html\tproject\framebota\platform\config\vendor\tongcheng\config.php

$config = array();
$files = Kohana::find_file('config', 'vendor/tongcheng/config', NULL, TRUE);
foreach ($files as $file){
// Merge each file to the configuration array
$config = Arr::merge($config, Kohana::load($file));
}
<?php require_once Kohana::find_file('views', 'Train/Common/ordersearch');?>

说明 function find_file($dir, $file, $ext = NULL, $array = FALSE);如果参数$dir="config|i18n|messages",则无论参数$array是true还是false,均返回array;反之当$array=默认false时,返回文件路径,当$arrayy=true时候,返回array。

4、kohana日志记录、日志存放framebota\runtime\com.bota.work\logs\2019\06

Kohana::$log->add(Log::DEBUG, __FILE__."\t".__LINE__."\t\t\t" . var_export($list, true));

5、kohana公共辅助函数

E:\html\tproject\framework\modules\common\classes\Common\HELP.php

HELP::isMobile($keyword)

6、kohana参数验证类函数

E:\html\tproject\framework\system\classes\Valid.php
E:\html\tproject\framework\system\classes\Kohana\Valid.php

Valid::date("2019-06-04 14:51:00")

7、Javascript同名方法或对象同名原型方法,后定义的覆盖前面的使用

        String.prototype.StartsWith = function(str)
{
return this.substr(0, str.length) !== str;
} String.prototype.StartsWith = function(str)
{
return this.substr(0, str.length) == str;
} function sss(){
console.log("sss");
}
function sss(){
console.log("aaa");
}
sss()
console.log("liuchao".StartsWith("liu"));
输出
aaa
true

  

8、php类构造方法__construct

class Bar {
   public function __construct() {
print "In BaseClass constructor\n";
}
public function Bar() {
print "In Bar\n";
// treated as constructor in PHP 5.3.0-5.3.2
// treated as regular method as of PHP 5.3.3
}
}

说明:创建Bar对象时候,__construct跟类同名方法都存在,调用__construct,Bar方法此时候不执行,如果__construct没显示定义,则调用类同名方法Bar。

自 PHP 5.3.3 起,在命名空间中,与类名同名的方法不再作为构造函数。这一改变不影响不在命名空间中的类。

namespace Foo;
class Bar {
public function Bar() {
print "In Bar\n";
// treated as constructor in PHP 5.3.0-5.3.2
// treated as regular method as of PHP 5.3.3
}
}

9、Kohana请求转发

$ret = Request::factory('orders/writeoff/ajax_index')->post(array('myname'=>'liuchao11'))->execute();
$ret = Request::factory('orders/writeoff/ajax_index')->query(array('myname'=>'liuchao11'))->execute(); $myname = $this->request->post('myname',null);
$myname = $this->request->query('myname',null);

  

10、kohana环境表示常量

E:\html\tproject\framebota\platform\bootstrap.php

line 7:

defined('CFG_DEBUG') or define('CFG_DEBUG', true);

defined('CFG_PLATE') or define('CFG_PLATE', 0);

kohana学习经验的更多相关文章

  1. [转]C语言指针学习经验总结浅谈

    指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...

  2. live555学习经验链接二

    live555学习经验链接二:http://blog.csdn.net/nkmnkm/article/category/1066093/2

  3. live555学习经验链接一

    live555学习经验链接:http://xingyunbaijunwei.blog.163.com/blog/#m=0&t=1&c=fks_084071082087086069082 ...

  4. 我个人的Java学习经验(一家之言)

    声明:本文只是我的个人经验之谈,或者连经验之谈都算不上,因为我觉得自己还是个新手,没有什么经验可谈,就算是我分享一下自己从开始学习Java到现在的一些心路历程吧,各位看官暂且看吧,欢迎交流.第一部分算 ...

  5. 从零基础到拿到网易Java实习offer,谈谈我的学习经验

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  6. Linux 内核学习经验总结

    Linux 内核学习经验总结 学习内核,每个人都有自己的学习方法,仁者见仁智者见智.以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下. 内核学习,一偏之见:疏漏难 ...

  7. 如何快速上手一个新技术之vue学习经验

    碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...

  8. 记录----第一次使用BFS(广度搜索)学习经验总结

    学习经验记录与分享—— 最近在学习中接触到了一种解决最短路径的实用方法----BFS(广度搜索),在这里总结并分享一下第一次学习的经验. 首先第一个要了解的是"queue"(队列函 ...

  9. 20155208徐子涵Vim编辑器学习经验

    20155208徐子涵 2016-2017-2 Vim编辑器学习经验 当我们运用虚拟机进行书写代码时,我们就会用到Vim编辑器,用Vim编辑器进行编辑特别方便,而Vim编辑器中也有一些操作需要去学习. ...

随机推荐

  1. poker

    一副扑克牌有n张牌.一般你买的一副新扑克牌里除了这n张牌外还会有一些张特殊的牌,如果你不小心弄丢了n张牌中的某一张,就可以用特殊牌来代替,但是如果你弄丢两张的话就没有办法了,因为特殊牌上的图案是一样的 ...

  2. 密码学 - MD5 - 生成|加密|解密|相关工具

    生成MD5 解密 工具 - findmyhash使用方法:-h 直接跟hash值 -f 指定hash文件 -g 通过google查找hash 加密方式识别工具 hash-identifier 支持识别 ...

  3. 【Linux开发】将cmd中命令输出保存为TXT文本文件

    将cmd中命令输出保存为TXT文本文件 在网上看到一篇名为:"[转载]如何将cmd中命令输出保存为TXT文本文件" 例如:将Ping命令的加长包输出到D盘的ping.txt文本文件 ...

  4. 20191127 Spring Boot官方文档学习(5)

    5.Spring Boot Actuator:可投入生产的功能 Spring Boot包含许多其他功能,可帮助您在将应用程序投入生产时监控和管理您的应用程序.您可以选择使用HTTP端点或JMX管理和监 ...

  5. 宏定义 #define CH_SENS(a,b) 0x##a##b

    #define Bin(n) LongToBin(0x##n##L) " ## ",属于宏定义中的字符(串)连接符,即,将符号两端的字符(串)接为一个整体,如以上代码中,在调用Bi ...

  6. 秒懂Vuejs、Angular、React原理和前端发展历史

    「前端程序发展的历史」 「 不学自知,不问自晓,古今行事,未之有也 」 我们都知道现在流行的框架:Vue.Js.AngularJs.ReactJs,已经逐渐应用到各个项目和实际应用中,它们都是MVVM ...

  7. Nginx工作机制

    Nginx分为单工作进程和多工作进程两种模式.通常采用1个master+多个worker进程配合异步非阻塞的工作机制.master进程主要负责管理自身和下属的worker进程,worker负责处理请求 ...

  8. RabbitMq学习6-安装php-amqplib(RabbitMQ的phpAPI)

    一.使用composer安装php-amqplib 1.在你的项目中添加一个 composer.json文件: { "require": { "php-amqplib/p ...

  9. js中箭头函数 及 针对箭头函数this指向问题引出的单体模式

    ES6允许使用“箭头”(=>)定义函数 var f = a = > a //等同于 var f = function(a){ return a; } 如果箭头函数不需要参数或需要多个参数, ...

  10. python3 pycurl 出现 TypeError: string argument expected, got 'bytes' 解决方案

    用pycurl请求指定链接并返回结果时出现 TypeError: string argument expected, got 'bytes'  错误 经过排查问题出现在使用StringIO的write ...