Quantcast
Channel: Hello World
Viewing all articles
Browse latest Browse all 34

YII-基于类的动作Action

$
0
0

如前文所述,动作可以被定义为一个以 action 单词作为前缀命名的方法。而更高级的方式是定义一个动作类并让控制器在收到请求时将其实例化。 这使得动作可以被复用,提高了可复用度。

要定义一个新动作类,可用如下代码:

class UpdateAction extends CAction
{
    public function run()
    {
        // place the action logic here
    }
}

为了让控制器注意到这个动作,我们要用如下方式覆盖控制器类的actions() 方法:

class PostController extends CController
{
    public function actions()
    {
        return array(
            'edit'=>'application.controllers.post.UpdateAction',
        );
    }
}

如上所示,我们使用了路径别名 application.controllers.post.UpdateAction 指定动作类文件为 protected/controllers/post/UpdateAction.php.

通过编写基于类的动作,我们可以将应用组织为模块的风格。例如, 如下目录结构可用于组织控制器相关代码:

protected/
    controllers/
        PostController.php
        UserController.php
        post/
            CreateAction.php
            ReadAction.php
            UpdateAction.php
        user/
            CreateAction.php
            ListAction.php
            ProfileAction.php
            UpdateAction.php

Viewing all articles
Browse latest Browse all 34

Latest Images

Trending Articles





Latest Images