blogチュートリアル(7) postモジュールの作成
postモジュールの作成
symfonyでは、モデルとコントローラ(モジュール、アクション)間に規約による関連づけはありません。 Postモデルの一覧を表示し、追加、編集、削除を行うためのモジュールの名前は何でも構いませんが、ここでは分かりやすいように「post」モジュールとします。 以下のコマンドをsf_sandbox
ディレクトリで実行して、postモジュールを作成しましょう。
php symfony generate:module frontend post
サンドボックスパッケージには、デフォルトでfrontendという名前のアプリケーションが含まれています。上のコマンドでは、アプリケーション名としてこのfrontendを指定しています。
モジュールを作成すると、apps
ディレクトリ配下に次のようなファイルが生成されます。
sf_sandbox/ apps/ frontend/ modules/ post/ actions/ actions.class.php templates/ indexSuccess.php
- actions.class.php: postモジュールのアクションを記述するファイルです。
- indexSuccess.php: postモジュールのindexアクションを実行した場合に、レスポンスのレンダリングに使用されるテンプレートファイルです。PHP形式であることに注意してください。
indexアクションの編集
それでは早速アクションを編集しましょう。actions.class.php
ファイルをエディタで開きます。このファイルは、デフォルトで以下のような内容になっています。
/** * test actions. * * @package sf_sandbox * @subpackage post * @author Your name here * @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $ */ class postActions extends sfActions { /** * Executes index action * * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { $this->forward('default', 'module'); } }
executeIndex
メソッドの中身を次のように編集してください。
public function executeIndex(sfWebRequest $request) { $this->posts = Doctrine_Core::getTable('Post')->findAll(); }
このコードは次の2つのことを行っています。
- ORMであるDoctrineを使って、PostモデルのテーブルメソッドfindAll()を呼び出し、
post
テーブルのすべてのレコードを取得しています。 - 上記で取得したレコードを、ビューで「
$posts
」という変数経由で使用できるように設定しています。
Doctrine_Core
クラスはsymfonyによってオートロードされるため、actions.class.php
にてinclude
やrequire
を記述する必要はありません。symfonyのオートロード機能については、symfonyのオートロードで説明しています。
インデックス
Document Index
関連ページリスト
Related Pages
- blogチュートリアル(1) Symfonyの準備
- blogチュートリアル(2) データベースの設定
- blogチュートリアル(3) スキーマの定義とテーブルの生成
- blogチュートリアル(4) 追加の設定
- blogチュートリアル(5) mod_rewriteについてと、初期表示の確認
- blogチュートリアル(6) モデルの作成
- blogチュートリアル(7) postモジュールの作成
- blogチュートリアル(8) ビューの作成
- blogチュートリアル(9) 記事の追加
- blogチュートリアル(10) データのバリデーション
- blogチュートリアル(11) 投稿記事の削除
- blogチュートリアル(12) 投稿記事の編集
- blogチュートリアル(13) ルーティング
- blogチュートリアル(14) まとめと応用
日本語ドキュメント
Japanese Documents
- 2011/01/18 Chapter 17 - Extending Symfony
- 2011/01/18 The generator.yml Configuration File
- 2011/01/18 Les tâches
- 2011/01/18 Emails
- 2010/11/26 blogチュートリアル(8) ビューの作成