CakePHPの使い方勉強したのでおさらいとしてブログにまとめてみます。ここではインストールからHelloWorldまでをまとめてみます。
CakePHPはPHPのフレームワークで非常に簡単に使えて、コード量も少なく便利ですね。とくにデータの保存・更新・削除などの基本的な操作は一からコードを書くと結構大変なんですが、このCakePHPというフレームワークを使うとそういうよく使うものを簡単に記述することができます。
ではさっそくCakePHPの使い方を見ていきます。インストールからHelloWorldまでをやってみましょう。
CakePHPのダウンロードとインストールの準備
まずはCakePHP本体のダウンロードをします。GitHubか本家からダウンロードできます。本家のダウンロードはこちらから。
CakePHP Home
ダウンロードできたらファイルを解凍し、MacであればMAMPのhtdocs内に入れましょう。MAMPのダウンロードはこちらから。左のフリーの方でOKです。
MAMPのダウンロード
次にフォルダ名を変更します。フォルダ名は作成したいアプリの名前などにしておきます。MAMPを起動した状態でローカルホストでアクセスすると以下のようなページが表示されます。ここまでで準備は終了。
エラーを修正してインストール
ダウンロードした状態ではエラーが出ているので、まずはそれを修正していきます。ここでやることはセキュリティコードの作成とデータベースファイルの作成の2つです。
まずはセキュリティコードを作成します。フォルダ内のapp->Config->core.phpを開いて、188行目あたりを表示します。ここにデフォルトで記述されているセキュリティコードを40文字程度の別のものに変更します。
さらにその下の数字も30文字程度で同様に変更します。
その後ページを表示すると上2つのエラーが消えていることが確認できます。
次はデータベースファイルの作成。app->Config->database.php.defaultをコピーして.defaultの部分を削除します。すると下のエラー2つも消えています。
実際使用する場合はこのdatabase.php内にユーザー名やパスワード、データベース名を入力しますが、今回はデータベースにアクセスしないのでそのまま使います。
CakePHPでHelloWorld!!
いよいよ画面の表示になります。CakePHPはMVCというデザインパターンを採用しており、データを扱うModel、画面を扱うView、それらをコントロールするControllerを作成する必要があります。今回はデータを扱うことがないため、Modelは作らずControllerとViewを作成して画面を表示させてみたいと思います。
まずはViewを作ってみましょう。Viewを作るときはapp->View内にフォルダを作成し、その中に表示させるファイルを作っていきます。ここでは命名規約があるのですが今は細かいは気にせず作っていきます。
ではapp->View内にHelloというフォルダを作りましょう。そのなかにindex.ctpというファイルを作成します。.ctpはcaketemplateの略でviewファイルの拡張子になります。ファイルの中に記述するのはもちろん、HelloWorldですね。
作れたらさっそくこのファイルにアクセスしてみましょう、アプリ名/Hello/で開いてみると・・・
まだControllerを作っていないためこのようなエラーが表示されます。これを解決するため、app->Controller内にViewに作成したフォルダ名と同じ名前+Controller.phpでファイルを作成します。ここではHelloController.phpですね。
また、ページの赤いエラーの下にコードが記述されているのでそれをコピーしてControllerにペーストしましょう。これで問題解決なので再び表示してみます。
またエラーがでました。なにやらindex()というメソッドを書かないといけないようなので、先ほどと同様にHelloController.php内に表示されたコードをコピペします。
これでうまくいきました。少し強引にやってみましたが一応これで表示できるということがわかったと思います。
まとめ
ここまでをざっくりまとめると以下のようになります。
- インストールはdbファイルとセキュリティを設定
- View内にControllerと同名のフォルダを作成
- そのフォルダに.ctpでページを作成
- Controllerに表示したいページと同名のメソッドを作成
ものすごく大雑把にまとめてみるとこんな感じです。ちなみにControllerに記述するメソッドはアクションといい、表示するviewをコントロールします。このアクションにはModelから送りたいデータをセットしたり、フォームで送信されたデータをModelに保存するといった処理を記述します。
viewにはHTML構造と合わせてControllerから受け取ったデータを表示させるように記述します。今回はデータのやりとりがないので、viewはそのままHelloWorldと出力しています。
MVCとか命名規約とか慣れるまではややこしいですが、今回のように単純化して考えるとわかりやすいですね。今後はCakePHPを使って簡単なアプリを作ってみたいと思います。