CakePHP2.0の初期設定とcakeをbakeで焼きましょう

CakePHP Advent Calendar 2011に触発されたので、「勝手にCakePHP Advent Calendar 2011」ということにして記事を書いてみます。

お題は「CakePHP2.0の初期設定とcakeをbakeで焼きましょう」です。

CakePHPをインストール

とりあえずCakePHPを落とします。
2.0系を使いたかったので、僕がやったときの最新の安定版である2.0.4にしました。

必要なさそうなファイルは削除しておきます。

今回は http://tnnsst35.me/cakephp/ にアクセスすることを前提に話を進めていきます。
作ったcakephp直下に http://tnnsst35.me/cakephp/ でアクセスできるように移動しておきます。
※なお、実際にこのURLにアクセスしてもなにも出てきません。自分用に置き換えてください。

CakePHPの初期設定

ブラウザからアクセスするときっとエラーが続出するので直していきます。


※緑が正常。黄は警告。赤はエラーです。黄と赤がなくなればOKです。

Please change the value of ‘Security.salt’ in app/Config/core.php to a salt value specific to your application
187行目 app/Config/core.php

Please change the value of ‘Security.cipherSeed’ in app/Config/core.php to a numeric (digits only) seed value specific to your application
192行目 app/Config/core.php

Your tmp directory is NOT writable.

Your database configuration file is NOT present. Rename APP/Config/database.php.default to APP/Config/database.php
言われた通りにdatabase.php.defaultをdatabase.phpにする。

ファイルの中のDATABASE_CONFIGクラスの$defaultに利用するデータベースの情報を入れる。

エラーはすっきり消えて、セットアップ完了となる(はずです)。
もし、まだ何かエラー出ていたら調べましょう。

ページをつくってみる

アプリケーションのホームになる画面をつくります。

http://tnnsst35.me/cakephp/home/

このURLでアクセスできるようにしてみます。

何をどう書き始めたらよいかわからない人でも心配はいりません。
CakePHPにはbakeというコードのひな形を生成してくれるプログラムがついているので、bakeを使うと便利です。

これで app/Controller/HomeController.php が出来上がっています。

ただコレだけでは動かないので、HomeControllerにindexメソッドを追加してやります。

これでひとまずControllerはできたので次はViewを作ります。

もちろんbakeを使います。

View/Home/index.ctp が焼き上がりました。
と言っても中身は空なので、確認用に何か入れておきます。

ここまで終わったらブラウザからhttp://tnnsst35.me/cakephp/home/を確認してみます。
きっと「Homeだお」という文字が表示されていると思います。

ルートを変更する

アプリケーションのホームができましたね。
ただ、ホームというからには / でも /home と同じ内容を表示したいですよね。
なので / でアクセスされたときの制御を変更します。
ルーティングの設定は app/Config/routes.php の中にあります。
28行目を変更します。

http://tnnsst35.me/cakephp/ にブラウザからアクセスしてみます。
http://tnnsst35.me/cakephp/home と同じ内容が表示されるようになりました。

とりあえずこれでCakePHPを使い始めることはできるようになりました。
あとは好きにアプリケーションを作っていきましょう。

まとめ

・CakePHPのインストールと設定は簡単
・コードのひな形はbakeを使うのがオススメ
・ケーキを食べたくなる

今回やったようにCakePHPは「サーバの設定」などが特に必要なく簡単に導入できるという利点があります。

学習コストも低めだと思います。
僕自身、初めて触ったフレームワークはCakePHPでしたが、「MVC」という単語を知らなくても簡単にMVCが理解できて、コードを書くのも簡単なので初心者にはオススメのフレームワークです。
完全初心者の頃にsymfonyをやって難しすぎて気が狂いそうになった思い出があります。

巷でも「はやい」と噂のCodeigniterやFuelPHPに比べれば遅いという欠点もありますが、それなりに大規模プロジェクトでも使えると思っています。
機能がいろいろ詰め込まれているsymfonyに比べれば役不足かもしれませんが、その分無駄なものは少ないので学習コスト低めでシンプルに扱えます。
Pluginを公開してる人も結構います。

あとはアイコンがケーキなので甘党の人にもオススメです。
ケーキが食べたくなります。

おまけ

CakePHP関連のTipsといえば、元CakePHP開発者の人が立ち上げたLithiumがあったりします。
LithiumもMVCフレームワークで、以前少し試したことがあります。
PHP5.3で登場した「名前空間」がバリバリ使われていて、\hoge\foo\bar(); みたいな記述が山のようにあります。
個人的には「ちょっと見づらいな」と思ってしまって、そっと「:q!」を打ってしまいました。
※まぁこれは名前空間の恩恵をまだわかっていないから思うだけかもしれませんが。

次回はCakePHPでスマートフォン向けのページを作るのをやってみようと思う。
おわり。

Pocket

Posted in CakePHP, PHP.

CakePHPでloadModel

CakePHPでは、

コントローラやコンポーネントでモデルを使用する場合には[loadModel]メソッドを使う。

loadModelメソッドは1回の呼び出しにつき、1つのモデルしか読み込まないので、

たくさんのモデルを読み込みたいときにはなかなか不便です。

ということで、1回の呼び出しで複数のモデルを読み込める拡張版をAppControllerとかに作っておくと便利です。

まぁそれだけ。

Pocket

Posted in CakePHP.

CakePHPでモバイルサイト開発 – 2日目 -

id:inventくんに「PHPで作る携帯サイトデベロッパーズガイド」という本をかりた。

PHPで作る携帯サイトデベロッパーズガイド

PHPで作る携帯サイトデベロッパーズガイド

タイトルからは全くわからないが、CakePHPのモバイル開発について書かれているみたい。

※こんな本があるのを知らなかったー

▼一部抜粋

『ポイントは、PHPファイルないでXML宣言を行う場合に「XML宣言はプログラムで記述する」点です。直に指定するとPHPコードを見なされ、パースエラーになります。』

『CSS docomoだけ、XHTML形式の出力のみでしかCSSが使えない』

『CSS docomoだけ、HTTPヘッダもXHTML宣言しなければならない』

『CSS docomoだけ、タグのインライン表記でしか対応していない』

著者が作成した「Ktai Library」という拡張ライブラリとCakePHPを連携したページ制作について、ショッピングサイト制作をお題に書かれているっぽい。

http://blog.ecworks.jp/ktai

大きいサイト作るときには使うと便利かもだけど、今回は[docomoオンリー][絵文字なし]と簡単なページなので必要ないかと。

さて、昨日の続き。

・・・と思ったが、特に突出するトピックもなくページが完成してしまった。

<感想>

「CakePHPだからこうつくる!」みたいなものは特に感じなかった。

フレームワークの有無、種類にはあまり関係ない、「モバイル開発の基礎」があればどんな環境でもいけそうだ。

次、モバイルサイトをつくる機会があれば、PHPならsymfonyを使ってみたいと思う。

※ruby × Railsでもやってみたいな。

Pocket

Posted in CakePHP.