手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:burst

Yii自定义控制器

如果你的项目中有控制器需要共用,其实只需要在config/main.php中加入一小段代码即可实现:

XML/HTML代码
  1. 'controllerMap'=>array(  
  2.     'xxx'=>'ext.XxxController'  
  3. ),  

然后就可以直接调用了:index.php?r=xxx/index,即可以调用XxxController类中的activeIndex方法

这种适合在什么情况下呢?比如统一的出错处理类,这个就相对会比较方便,因为这样的代码会几乎一样。还有那种工具控制器,比如将数据导出成xls,可以写一个XlsController来处理它。

这样的控制器,一般来说适合用于不经权限控制的情况。

让CRONTAB精确到秒的执行任务

众所周知,crontab的最小粒度是分,即当第一位是“*/1”时,即最小单位是每分钟执行。
但是,有时候我们要按秒执行,当然这是比较夸张的了,但每半分钟执行一次还是有可能的,这时候就没有办法了,所以后 来 找啊找,就找到了一篇说明:

XML/HTML代码
  1. */1 * * * * sh /root/cron.sh  
  2. */1 * * * * sleep 30 && sh /root/cron.sh  

执行的时候先sleep 30秒,变相的达到每半分钟执行此命令,果然很变态

windows下面也有模拟crontab的软件,如crontabs,pycrontab等,都是注册成一个服务,然后再执行,但是没有一个软件是比较好用的。总有小问题。

Tags: crontab

来自雪候鸟的关于JSON一些提示

风雪之隅的博客现在也越来越被很多人知道了,当然这与他加入了php的开发组也有关系。这不,开始内爆了。

前两天我在纠正关于json_decode的问题时,看了一下在线手册,才发现json_decode有了第四个可选参数,把BIG_INT当成STRING来处理。
当然看json_decode的时候里面的参数介绍的不多。这不,昨天雪候鸟更新了N多博客,里面就介绍了两篇与JSON相关的东西:

1、让Json更懂中文(JSON_UNESCAPED_UNICODE)
2、JsonSerializable接口

其中第1篇就是我说的BIG_INT相关的那些附加参数,他这么说了:

XML/HTML代码
  1. 怎么样, 是不是让大家很开心的改动? 呵呵, 当然, Json在5.4还加入了: JSON_BIGINT_AS_STRING, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES等选项, 如果有兴趣, 大家可以参看: json_encode 

所以,比如让中文输出的时候不要变成\uxxxx这种格式就只需要这样:

PHP代码
  1. <?php  
  2. echo json_encode("中文", JSON_UNESCAPED_UNICODE);  
  3. //"中文"  ,如果没加这个参数,以前输出是:"\u4e2d\u6587"

然后JSONSerialize,则是有点象serialize了,但是只针对数据输出,而不是象serialize可以把整个对象序列化。。有点象这样:

PHP代码
  1. <?php  
  2. class JsonTest implements JsonSerializable {  //看一下这里
  3.     private $a$b;  
  4.   
  5.     public function __construct($a$b) {  
  6.         $this->a = $a;  
  7.         $this->b = $b;  
  8.     }  
  9.   
  10.     public function jsonSerialize() {  //也就是说这里要主动实现
  11.         return $this->a + $this->b;  
  12.     }  
  13. }  
  14.   
  15. echo json_encode(new JsonTest(23, 42));  
  16. ?>  
  17.   
  18. //65  

在使用的时候就可以这样:

PHP代码
  1. <?php  
  2. $data = array(  
  3.     new stdClass();  
  4.     new JsonTest(1,2),  
  5.     new JsonTest(3,4),  
  6.     array(5,6)  
  7. );  
  8. echo json_encode($data);  
  9. ?>  
  10.   
  11. //[{},3,7,[5,6]]  

雪候鸟也说了:最后提醒一下, PHP 5.4还处于开发阶段, 在最终release之前, 这些特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好.

------
好吧,第一个功能我喜欢,第二个我短时间内还用不到。。。

Tags: 雪候鸟, json