WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

zfコマンドでZendFrameworkのプロジェクトやコントローラを生成する

      2012/12/17

zfコマンドの使い方

zfコマンドについての説明とインストールについては下記の記事を参考にしてください。
ZendFrameworkのコマンドラインツール・zfコマンドをインストールする

zf create project

“zf create project”コマンドにプロジェクト名を渡すことで、ZendFrameworkの推奨ディレクトリ構成のスケルトンを生成することができます。

# zf create project /path/to/project
# tree /path/to/project
project
|-- application
|   |-- Bootstrap.php
|   |-- configs
|   |   `-- application.ini
|   |-- controllers
|   |   |-- ErrorController.php
|   |   `-- IndexController.php
|   |-- models
|   `-- views
|       |-- helpers
|       `-- scripts
|           |-- error
|           |   `-- error.phtml
|           `-- index
|               `-- index.phtml
|-- docs
|   `-- README.txt
|-- library
|-- public
|   `-- index.php
`-- tests
    |-- application
    |   `-- bootstrap.php
    |-- library
    |   `-- bootstrap.php
    `-- phpunit.xml

以下のコマンドは生成したプロジェクトのカレントディレクトリで実行します。

zf create controller

アクションコントローラの雛形は”zf create controller コントローラ名”で作成することができます。

# cd /path/to/project
# zf create controller test
|   |-- controllers
|   |   |-- ErrorController.php
|   |   |-- IndexController.php
|   |   `-- TestController.php
|   |-- models
|   `-- views
|       |-- helpers
|       `-- scripts
|           |-- error
|           |   `-- error.phtml
|           |-- index
|           |   `-- index.phtml
|           `-- test
|               `-- index.phtml

頭文字を大文字で入力しなくても自動的にZendFrameworkでの命名規則に従って生成してくれます。
上記のとおり、対応するビュースクリプトも自動的に生成してくれるようです。

zf create action

アクションコントローラにアクションの雛形を追加するには”zf create action アクション名 コントローラ名”を実行します。

# zf create action name controller-name
|   `-- views
|       |-- helpers
|       `-- scripts
|           |-- error
|           |   `-- error.phtml
|           `-- index
|               |-- hoge.phtml
|               `-- index.phtml

アクションに対応するビュースクリプトの雛形も自動的に生成され、アクションコントローラにもアクションメソッドが自動的に追記されています。

<?php echo '<?php'; ?>

 
class IndexController extends Zend_Controller_Action 
{ 
 
    public function init() 
    {   
        /* Initialize action controller here */ 
    }   
 
    public function indexAction() 
    {   
        // action body 
    }   
 
    <span class="red">public function hogeAction() 
    {   
        // action body 
    }</span>
 
 
} 

モジュールを指定する場合は下記のような構文になります。

# zf create action name controller-name 1 module

zf create module

モジュールも、”zf create module モジュール名”で生成することができます。

# zf create module blog

|   |-- modules
|   |   `-- blog
|   |       |-- controllers
|   |       |-- models
|   |       `-- views
|   |           |-- filters
|   |           |-- helpers
|   |           `-- scripts

“zf create controller コントローラ名 1 モジュール名”でモジュールを指定してコントローラの雛形を作成することもできます。
※コメント頂いたジゲン様、ご教授ありがとうございました。

要点・疑問点など

  • zfコマンドはアクション追加時に対応するビュースクリプトをつくってくれたり、application/congigs/application.ini ファイルを適宜書き換えてくれたりある程度融通が効く
  • ビュースクリプトの拡張子をphtmlからtplに変更して作成したいけど方法がわからない。

 - ZendFramework , , , ,