2013年4月10日水曜日

CakePHP ブログチュートリアルをやってみる(3)

前回までで環境的な部分は整ったはずなので、ここからはコードを書いていくことになるのだが、チュートリアルなのでそのまま進めれば普通に動くのだろう

Postモデルの作成

app/Model/Post.php ファイルを作成する
<? php
class Post extends AppModel {
}
?>

Postsコントローラの作成

app/Controller/PostsController.php ファイルを作成する
<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');

    public function index() {
        $this->set('posts', $this->Post->find('all'));
    }
}

?>

Postビューの作成

app/View/Posts/index.ctp ファイルを作成する
<h1>Blog posts</h1>
<table>
    <tr>
        <th>Id</th>
        <th>Title</th>
        <th>Created</th>
    </tr>

    <!-- ここから、$posts配列をループして、投稿記事の情報を表示 -->

    <?php foreach ($posts as $post): ?>
    <tr>
        <td><?php echo $post['Post']['id']; ?></td>
        <td>
            <?php echo $this->Html->link($post['Post']['title'],
array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); ?>
        </td>
        <td><?php echo $post['Post']['created']; ?></td>
    </tr>
    <?php endforeach; ?>
    <?php unset($post); ?>
</table>


この時点でブラウザで表示してみる
http://localhost/cakephp/posts/




こんな感じのページが表示される
ヘッダーとフッターになにやら表示されているが、これはどこかにテンプレートがあるのだろう
※デフォルトのテンプレートはこれ app/View/Layouts/default.ctp
 この部分に個別Viewが展開される
<?php echo $this->fetch('content'); ?>

チュートリアルはまだまだ続くが、ここまでで基本的なCakePHPの開発の流れはわかったのでチュートリアルはここで一旦終了する
PHP自体も初心者だしCakePHPの理解もまだまだなので、使いこなすには相当時間がかかりそうだ


まとめ

・命名規約が大事
クラス名、ファイル名だけではなく、データベーステーブル名も規約に従う必要がある
いや、規約に従わなくてもできる方法はあるはずだが、どこまで従ったら一番幸せになれるのか

・MVCのMって本当に必要?
他のMVCフレームワークもそうだが、どうもM(モデル)に馴染めない
このブログチュートリアル程度ならモデルを使ったほうが便利かもしれないが、自分の経験上、大抵のシステムでは、もっと複雑なリレーションが必要になるし、サブクエリも多用することが多い
モデルで実装できるのだろうが、SQL書いたほうが楽だし早い
モデルを使ったほうが良いという決定的な理由がほしい・・・
なので、個人的にはVCだけで作りたい(笑)

0 件のコメント:

コメントを投稿