Phalcon Devtoolsを使ったMVCプロジェクト作成からHelloWorldまで
Phalcon WebToolsの確認
Phalcon Devtoolsdを使ったプロジェクト生成の際に コマンドラインオプションとして--enable-webtoolsを指定しましたが、このオプションによりPhacon WebToolsをブラウザから操作が可能になります。
ブラウザを起動して、http://localhost:8000/webtools.phpにアクセスしてください。
コントローラーの作成
HelloWorldの出力を行うための、コントローラーを生成します。WebTools上のControllersをクリックしてください。
Create Controllerが表示されたら、NameにController Nameを入力してGenerateボタンを押してください。
「The controller "HelloController.php" was created successfully」と表示されていれば、コントローラーの生成に成功しています。
Phalconのコントローラー
生成されたコントローラーを確認します。
Helloworld/app/controllers/HelloController.phpを編集します。
- \Phalcon\Mvc\Controllerクラスを継承している。
- クラス名はHelloController
- メソッドにはActionというsuffixが付与されている
Ruby on RailsやCake PHPなどの経験がある方は、すぐに理解できると思いますが、Phalconでも命名規則があります。
コントローラーのクラスは、いくつかのActionというメソッドで構成されており、実際にリクエストのハンドリングを行います。
例として、下のURLにアクセスした場合
http://localhost/posts/show/2012/the-post-title
Phalconのデフォルトでは、以下の表として解釈されます。
URIの階層 | 値 |
---|---|
コントローラー | posts |
アクション | show |
引数1 | 2012 |
引数2 | the-post-title |
<?php class PostsController extends \Phalcon\Mvc\Controller { public function indexAction() { } public function showAction($year, $postTitle) { } }
Phalconのコントローラーは、以下のルールを守る必要があります。
- クラス名にはControllerとSuffixを付与 (HelloならHelloController)
- メソッド名にはActionとSuffixを付与、メソッドのアクセス権限はpublic ()
- コントローラー名のみのアクセスケースのために、indexActionがデフォルト
- \Phalcon\Mvc\Controllerクラスを継承
- app/controllers配下にクラス名.phpのファイル名で配置(HelloならHelloController.php)
indexAction()メソッドの中にecho "Hello World";として、HelloWorldを出力するコードを記述してください。
<?php class HelloController extends \Phalcon\Mvc\Controller { public function indexAction() { echo "Hello! World!"; } }
コントローラーの表示
ブラウザを起動して、http://localhost:8000/helloにアクセスしてください。また、http://localhost:8000/hello/indexにもアクセスしてください。