I'm attending CakeFest 2010!

3.13 CakePHP コンソール

この章ではコマンドラインで CakePHP を利用する方法について説明します。cron ジョブや他のコマンドラインスクリプトで CakePHP の MVC クラスにアクセスする必要がある場合、この章が役立ちます。

PHP は、ファイルシステムやアプリケーションに対するスムーズなインターフェースとなる、強力な CLI クライアントを提供しています。CakePHP のコンソールはシェルスクリプトを作成するためのフレームワークを提供します。コンソールはディスパッチャ形式のセットアップを使用して、シェルやタスクをロードし、そのパラメータを処理します。

コンソールを使用する場合は、PHP のコマンドライン(CLI)版が利用可能な状態になっている必要があります。

設定する前に、CakePHP コンソールを実行することができることを確認しましょう。まず始めに、システムシェルを起動する必要があります。この章にある例は bash を使用していますが、CakePHP コンソールは Windows でも同様に動作します。では、bash からコンソールプログラムを実行しましょう。この例はユーザが現在 bash プロンプトにログインしていて、CakePHP をインストールしたルートにいると仮定しています。

ひとまず、次のようにコンソールを実行することができます

$ cd /my/cake/app_folder
$ ../cake/console/cake

しかし、より好ましい使用法はコンソールディレクトリをパスに追加することです。そうすると cake コマンドをどこでも使用できます:

$ cake

コンソールプログラムを引数なしで実行すると、次のようなヘルプメッセージが表示されます:

Hello user,
 
Welcome to CakePHP v1.2 Console
---------------------------------------------------------------
Current Paths:
 -working: /path/to/cake/
 -root: /path/to/cake/
 -app: /path/to/cake/app/
 -core: /path/to/cake/
 
Changing Paths:
your working path should be the same as your application path
to change your path use the '-app' param.
Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp
 
Available Shells:
 
 app/vendors/shells/:
         - none
 
 vendors/shells/:
         - none
 
 cake/console/libs/:
         acl
         api
         bake
         console
         extract
 
To run a command, type 'cake shell_name [args]'
To get help on a specific command, type 'cake shell_name help'

出力された最初の情報はパスについてです。これは異なるファイルシステムからコンソールを実行している場合に特に役立ちます。

多くのユーザは CakePHP コンソールをシステムパスに追加すると簡単にアクセスすることができるようになります。working, root, app, core パスを出力するとコンソールがどこを変更したかがわかります。app フォルダを変更するために、第1引数として cake コマンドにパスを渡すことができます。次の例は app フォルダの指定方法を示しています。既に PATH にコンソールフォルダを追加していることを仮定しています:

$ cake -app /path/to/app

パスは、現在のワーキングディレクトリからの相対パスか絶対パスで指定します。