CakePHP / CakePHPで本当のHelloWorld
CakePHPで最初につまずくところ、MVCモデル。
モデル・ビュー・コントローラの略(Model-View-Controller)らしいんだけど、それって何って感じでした。
勉強していて、ようやくわかってきたのでここに記録しておきます。
概念を理解するには、CakePHP本家のここが一番わかりやすかったです。
http://book.cakephp.org/ja/view/10/model-view-controllerCakePHPでHelloWorldプログラムを作りたい場合、本当に書かなきゃいけないのはコントローラだけ。
以下のソースを書けばよいです。
class HelloWorldController extends AppController { public $name = 'HelloWorld'; public $uses = null; // $uses = array(); でも同じ動作 public $autoRender = false; function index() { echo "hello world!"; } }
これを
/cakeを配置した場所/app/controllers/hello_world_controller.php
としてサーバーに保存してやります。
ブラウザで
http://自分のドメインでcakeを配置した場所/hello_world/
としてアクセスすると、普通のHello Worldが表示されるようになります。
ビューを使いたい場合は
$autoRender = false; の行を削除するか、
$autoRender = true; とします。
デフォルトがtrueなので普通は削除します。
そうすると、
/cake/xxxxx/app/views/hello_world/index.ctp(cake1.1の場合index.thtml)
をテンプレートファイルとして勝手に読み込みにいってくれます。
テンプレートファイルを読み込んで、テンプレートの一部書き換えをする動作を
Cakeではレンダリングと呼んでいるようです。
モデルを使いたい場合は$uses = null;のところにモデル名の配列を指定します。
$uses = array("Modelname");
みたいな感じ。