cakePHP入門(2) – コントローラー

cakePHPについて、続きです。

cakePHPはMVC(モデル-ビュー-コントローラー)という思想に基づいています。
これについては、難しいとこは省略させていただきますが、ようするにデータを扱う部分、デザイン部分、仕組みの部分とわけて開発効率やメンテナンス性をあげるものだと思ってもらえば良いかと思います。
※ぼくもそこまで詳しく学んだわけではないので、詳しくは別のサイトさんや専門家に任せます(逃)

前回、インストールまで行いました。
前回の記事はこちら→cakePHP入門(1)

cakePHPインストール完了画面

cakePHPインストール完了画面


おそらく、インストールしたディレクトリにアクセスすると、問題が無ければ上記のような画面が表示されるはずです。
このような画面が表示されていれば、もう開発を始めることができます。

cakePHPの内部構成

cakePHPをインストールしたディレクトリの構成は以下のようになっているかと思います。

cakePHPのディレクトリ/

  • app/
  • lib/
  • vendors/
  • plugins/
  • …以下略
  • このなかで、変更を加える部分はappディレクトリです。
    appディレクトリの内部は以下のようになっていると思います。

    app/

  • webroot/
  • Config/
  • Controller/
  • View/
  • Model/
  • Vendor/
  • …以下略
  • …と、とりあえず重要な箇所はこんなとこでしょうか。

    webrootは文字通りアクセスした際に表示されるディレクトリです。
    ここにindex.htmlやcss、jsファイルなどを入れるとURLで直接アクセスすることができます。

    Configは設定ファイルが入っています。
    URLルーティングなどの詳細な設定もできるのですが、それは後ほど。

    Controllerには処理部を格納するコントローラーファイルが入っています。
    ○○sController.phpのようなファイル名で作成します。今回はここを解説したいと思います。

    ViewにはControllerから渡されたデータを受け取って表示するデザイン部分のファイルが入っています。
    特に変更を加えていなければ、Controller名/○○.ctpのような構成で保存します。

    Modelはデータベースとの連携部分や送られてきたデータのチェックなどを行うファイルが格納されます。
    通常DBテーブル名とそろえてテーブル名.phpというファイル名で保存することが多いです。

    VendorにはPHPでクラス化したPHPファイルやincludeしたいファイルなどを格納したりします。

    ◆アクセスの順序
    アクセスがあった場合、まずwebrootを参照しにいって、そこにファイルが無い場合にcakePHPへリクエストが渡されます。
    なので、webrootにファイルを置くことで通常のホームページ作りもできます。
    ただ、やっぱりcakePHPを使いたいので、今回はhtmlはゼロで行きましょう。
    cakePHP入門の後半でhtml偽装について書きたいと思います。

    コントローラー(Controller)を使う

    ページを作成するためにはコントローラー(Controller)を作成する必要があります。
    「えっ?なにそれ」というかたもいると思いますが、まずは実践です。
    デモでは、cakePHPのバージョン2.1.2を使用していますが、Ver2.x系なら基本的には変わりませんし、Ver1.3などでもディレクトリ構成が多少異なる以外はControllerの記述は同じはずです。

    Controllerディレクトリ内にTestsController.phpというファイルを作成してみましょう。

    <?php
    //app/Controller/TestsController.php
    App::uses('AppController', 'Controller');
    class TestsController extends AppController {
    	//コントローラー名
    	public $name = 'Tests';
    	
    	public function index() {
    	}
    }
    ?>
    

    最低限動かすにはこれだけです。
    3行目のApp::uses〜〜っていう記述はVer2.1からの追加でしょうか?

    コントローラー名は複数形で記述します。
    $nameにはコントローラー名を指定します。
    アクセスする場合は
    http://www.○○○.jp/tests/
    または、
    http://www.○○○.jp/tests/index/
    というかたちでアクセスすることができます。

    さて、このURLにアクセスするとエラーが表示されます。
    おそらく、ビュー(View)ファイルが無いという内容のものがでていると思います。

    とりあえず、Viewファイルを使用しない方法で記述してみましょう。
    変更する部分はfunction index()の中身です。

    function index(){
    	echo "Hello World!";
    	exit;
    }
    

    これで実行すると「Hello World!」と表示されます。
    その他にも、PHPでの処理を記述することができます。
    このようにcakePHPのコントローラーは、表示前に処理を行う部分だと思ってもらえれば良いと思います。

    次回はビュー(View)ファイルの作成についてです。

    1. コメント 0

    1. 2013 01/08

    return top