Shell tasks的一些知识

来源:互联网 发布:法语助手软件过期 编辑:程序博客网 时间:2024/05/17 07:13
有时构建更高级的控制台应用程序,您需要编写功能为可重用的类,可以共享许多贝壳。任务让你命令提取到类。例如烤了几乎全部的任务。您定义一个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.phpclass 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');





0 0
原创粉丝点击