MR.NiNi About Log Tech Graph Memo Books Twitter

About
Log
Tech
Graph
Memo
Books
Twitter

symfony 1.4モジュール構築

symfony 1.4で新規プロジェクトを構築する場合は下記のコマンドを実行する。
なお、当該コマンドはプロジェクトディレクトリで実行する必要があるので注意されたい。

% symfony generate:module test testmod

上記のコマンドを実行すると、testアプリケーションにtestmodモジュールが作成される。
モジュールの実体はプロジェクトディレクトリ配下のapps/<アプリケーション名>/modules/<モジュール名>に配置される。
モジュールディレクトリの中身は下記の通りとなる。

modulename/actions
modulename/actions/actions.class.php
modulename/templates
modulename/templates/indexSuccess.php


実際には、上記以外にもテスト用ファイルが作成されるが詳細は割愛する。
また、モジュール作成時には生成されないものの、設定を行なう際に必要となる「config」ディレクトリがある。これは必要に応じてmkdirコマンド等を使用して作成する。

symfony側で行なう処理については「actions/actions.class.php」に記述し、処理結果の表示については「templates/*****Success.php」に記述する。
templatesディレクトリ配下に存在するファイルの基本的な命名規則は下記の通りとなる。

templates/<ファンクション名>Success.php

ただし、上記は単純なファンクションの実行結果に係るものに限られる。
他にもパーシャルファイル等が存在し、こちらはファイル名の先頭に「_」が付与され、その命名規則は下記の通りとなる。

templates/_<パーシャル名>.php

パーシャルの使用方法についてはここでは割愛する。

actions.class.phpの初期状態は下記の通りとなる。

<?php
/**
 * testmod actions.
 *
 * @package    test
 * @subpackage testmod
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class testmodActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    $this->forward('default', 'module');
  }
}

初期状態ではindexファンクションのみ作成されており、実行するとdefaultモジュールのmoduleファンクションに転送される仕組みとなっている。
ここで個別にファンクションを記述する場合、下記の記述を削除するかコメントアウトする。

$this->forward('default', 'module');

然る後に処理内容を記述する事により、当該モジュール・当該ファンクションにアクセスした際にその処理内容が実行され、その後にtemplates/indexSuccess.phpの内容が読み出されて画面に表示される。
なお、actions.class.phpにはPHPの構文をそのまま記述する事が出来、それ以外にもsymfony側で用意されている書式や各種クラスを使用する事が可能である。
一方、templates/indexSuccess.phpの中身は空白であり、そこにはHTML及びphpの構文を記述する事となる。基本的にはactions/actions.class.php及び各種クラスファイルにPHP等の処理内容を記述し、templatesディレクトリ配下のファイルには画面表示用のHTML及びPHP等の処理実行結果を表示させるPHP構文等を記述する事となる。



【掲載日:2010.06.26 / 最終更新日:2011.04.05】

技術情報トップに戻る / トップページに戻る