5

次のようにシェルスクリプトを作成しました

<?php

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

コマンドラインでコンソールフォルダに移動してcakeemailと入力すると、次のエラーが発生します。

Error: Shell class EmailShell could not be found.
#0 C:\wamp\www\gitgrow\lib\Cake\Console\ShellDispatcher.php(167): ShellDispatche
r->_getShell('email')
#1 C:\wamp\www\gitgrow\lib\Cake\Console\ShellDispatcher.php(69): ShellDispatcher
->dispatch()
#2 C:\wamp\www\gitgrow\app\Console\cake.php(33): ShellDispatcher::run(Array)
#3 {main}
4

4 に答える 4

5

コンソールで使用するシェルを作成します。この例では、単純な Hello world シェルを作成します。アプリケーションの Console/Command ディレクトリに EmailShell.php を作成します。その中に次のコードを入れます。

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

次に、次のコマンドを実行します。

Console/cake email

また

cake email
于 2012-07-19T08:24:02.803 に答える
2

で実行しC:\wamp\www\gitgrow\app\ます。それはうまくいくはずです。

cd C:\wamp\www\gitgrow\app
Console\cake email
于 2012-07-19T08:27:02.283 に答える
1

シェル クラスが適切な場所にある場合、cake がアプリのルートがどこにあるかを認識できないことが問題である可能性があります。これは、-app 引数を使用して指定できます。

cake -app ../app email
于 2012-07-19T07:41:36.987 に答える