您的位置:首页 > 运维架构 > Shell

Shell tasks的一些知识

2014-04-29 16:27 148 查看
有时构建更高级的控制台应用程序,您需要编写功能为可重用的类,可以共享许多贝壳。任务让你命令提取到类。例如烤了几乎全部的任务。您定义一个shell的任务通过使用美元的任务属性:
class UserShell extends AppShell {
public $tasks = array('Template');
}


您可以使用插件使用标准插件语法任务。任务存储在Console/Command/Task/文件命名他们的类。所以如果我们要创建一个新的“FileGenerator”任务中,您将创建Console/Command/Task/FileGeneratorTask.php。

每个任务必须至少实现一个execute()方法。ShellDispatcher将任务调用时调用该方法。一个任务类看起来像:

class FileGeneratorTask extends Shell {
public $uses = array('User');
public function execute() {

}
}

shell作为属性也可以访问它的任务,使任务大制作类似于可重用的功能块组件:
// found in Console/Command/SeaShell.php
class SeaShell extends AppShell {
public $tasks = array('Sound'); // found in Console/Command/Task/SoundTask.php
public function main() {
$this->Sound->execute();
}
}


您也可以从命令行直接访问任务:

$ cake sea sound

与TaskCollection动态加载任务

您可以使用任务负载动态任务集合对象。可以加载任务没有宣布任务:
$Project = $this->Tasks->load('Project');


将加载并返回一个ProjectTask实例。你可以从插件加载任务使用:
$ProgressBar = $this->Tasks->load('ProgressBar.ProgressBar');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息