调用关系
Action
为总路由入口,Action
可调用私有对象Service
业务层 和 DAO
数据库层
Service
业务层 可调用私有对象DAO
数据库层
程序全局可调用lib库下系统方法,例如:Logger
(调试组件)
App::$base
为全局单例类,可全局调用
App::$base->request
为当前请求,可获取当前地址,客户端ip等
App::$base->session
为系统session,可直接获取和复制,设置过期时间
App::$base->memcache
为系统memcache,可直接获取和复制,设置过期时间
App::$base->redis
为系统redis,可直接获取和复制,设置过期时间
用户可以在/app/model/
下自定义model数据类,通过App::$model
获取,例如:
App::$model->person
为当前用户,可在/app/model/person.php
中定义
简单示例
namespace app\controller;use App;- /**
- * 主页Action
- * @property \app\service\projectService $projectService
- * @property \app\dao\projectDAO $projectDAO
- */
class testActionextends baseAction- {
// init方法会在action执行前被执行 public function init ()- {
// 未登录时调整登录页面 if (!App::$model ->person ->exist ()){return App::$base ->request ->redirect ('/auth/login/' );- }
- }
//默认路由index public function action_index ()- {
// 获取当前用户 $person = App::$model ->person ;$members = App::$base ->memcache ->get ('cache_' . $person ->project_id );if (!$members ){// 获取用户所在项目成员 $project =$this ->projectDAO ->find (array ('id' =>$person ->project_id ));$members =$this ->projectService ->getMembers ($project ['id' ]);- App::
$base ->memcache ->set ('cache_' . $person ->project_id ,$members );- }
//返回 project/members.tpl.php return $this ->display ('project/members' ,array ('members' =>$members ));- }
- }
P.S: 示例中的用法会在下面具体展开介绍