创建一个shell

让我们创建一个shell使用控制台。对于这个示例,我们将创建一个简单的Hello world壳。在您的应用程序目录创建HelloShell.php控制台/命令。把下面的代码里面:

class HelloShell extends AppShell {
    public function main() {
        $this->out('Hello world.');
    }
}

约定壳类,类名应该匹配文件名,后缀的外壳。在我们的外壳我们创建了一个main()方法。调用此方法调用shell时,没有额外的命令。我们将添加更多的命令,但是现在让我们运行我们的外壳。从您的应用程序目录,运行:
Console/cake hello
您应该看到如下输出:
Welcome to CakePHP v2.0.0 Console
---------------------------------------------------------------
App : app
Path: /Users/markstory/Sites/cake_dev/app/
---------------------------------------------------------------
Hello world.

如前所述,main()方法在贝壳是一种特殊的方法调用时没有其他命令和参数给一个shell。您可能也注意到,HelloShell AppShell延伸。就像应用程序控制器,AppShell给你一个基类来包含所有的常见功能或逻辑。您可以定义一个AppShell,通过创建app /控制台/命令/ AppShell.php。如果你没有一个,CakePHP将使用内置的一个。因为我们的主要方法并不是很有趣的让我们添加另一个命令是:
class HelloShell extends AppShell {
    public function main() {
        $this->out('Hello world.');
    }

    public function hey_there() {
        $this->out('Hey there ' . $this->args[0]);
    }
}

在保存这个文件你应该能够运行控制台/蛋糕你好hey_there your-name打印出来,看看你的名字。任何公共方法没有一个前缀_可以从命令行调用。在hey_there方法我们也使用$ this - >参数,该属性包含一个数组的所有位置参数提供给一个命令。您还可以使用开关或期权shell应用程序,这些都是可以在$ this - >参数,但我们将讨论这一点。
当使用一个main()方法将无法使用位置参数或参数。这是因为第一个位置参数或选项解释为命令名。如果您想要使用参数和选项,您应该使用主要以外的方法名。在你的shells使用模型
你会经常需要访问您的应用程序的业务逻辑在shell工具;CakePHP,超级简单。通过设置使用美元财产,您可以定义一个数组的模型你想访问您的shell。定义模型加载属性附加到您的shell,就像一个控制器模型连接:
class UserShell extends AppShell {
    public $uses = array('User');

    public function show() {
        $user = $this->User->findByUsername($this->args[0]);
        $this->out(print_r($user, true));
    }
}

上面的shell,将获取一个用户的用户名和显示的信息存储在数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值