- 控制器方法名称,使用“action”作为前缀,如“actionIndex”。
-
- 需要在模板中使用的函数,建议以“tpl_”开头,以示区别。
-
目录搜索优先级是:model > include > controller,故最常用的类库放置在model目录,而不经常使用的放include,
而controller主要是方便隔控制器调用某些方法,一般controller目录不建议放除控制器类文件以外的php文件。
rotected/controller/BaseController.php,在BaseController类中,加入以下方法:
类库public static function err404($module, $controller, $action){ header("HTTP/1.0 404 Not Found"); $controlObj = new Controller; $controlObj->display("404.html"); exit; }
都可以直接通过new语法来实例化:
- 类名和类文件名一致,当然也必须是大小写一致才行。
- 类文件放在protected下面的model、include、controller之一的目录内。
如加解密、分片下载、美化时间等函数。
在“全局位置”中引入该文件(如BaseController的init()函数)
<?php
// mydate函数
function mydate($time = null){
if( null == $time )$time = time(); // 默认是当前时间
if( $time > (time() - 3600) ){
return "刚才";
}elseif( $time > (time() - 3600 * 24) ){
return "今天";
}elseif( $time > (time() - 3600 * 24 * 2) ){
return "昨天";
}elseif( $time > (time() - 3600 * 24 * 3) ){
return "前天";
}else{
return date("Y-m-d H:s", $time);
}
}
?>
将以上代码保存到protected/include/functions.php里面。
functions.php文件和include目录都是不存在的,需要自行创建。
然后在BaseController的init()函数内,将它包含进来:
<?php
class BaseController extends Controller{
function init(){
require(APP_DIR.'/protected/include/functions.php');
}
}
?>
那么,在程序的控制器以及模板内,都可以正常使用mydate()函数了。