今さら symfony 1.4 と言われそうですが、まだ稼働しているアプリがあるので、自分用のメモ書きです。
- symfony 1.4 メモ(アクション)
- symfony 1.4 メモ(context)
- symfony 1.4 メモ(モデル)
- symfony 1.4 メモ(schemaの書き方)
- symfony 1.4 メモ(Doctrine)
- symfony 1.4 メモ(フォーム)
- symfony 1.4 メモ(コマンド)
- symfony 1.4 メモ(ユーティリティ)
アクションの継承
moduleActions > autoModuleActions > sfActions > sfAction > sfComponent
Adminジェネレータで生成するとcacheフォルダにアクション(autoModuleActions)やテンプレートが生成される。
追加したいアクションや上書きしたいアクションについて、モジュールアクションやモジュールテンプレートを追加する。
generatorのカスタマイズ
/data/generator/sfDoctrineModule/default
に autoModuleActions
のテンプレートが入っている。
オリジナルのテンプレートを作り、モジュール毎の generator.yml
に作成したテーマを指定すれば
オリジナルのテンプレートで autoModuleActions
を作れる。
sfDoctrineGenerator
を継承するオリジナルのgeneratorクラスを作っておけば
generate時の振る舞いもカスタマイズできる。
generator:
class: originalDoctrineGenerator
param:
model_class: ModelClassName
theme: original_admin_theme
autoModuleActions の継承元を変更しておけば
全アクション共通の処理が書けるアクションClassを作ることができる。
継承を追加した場合
moduleActions > autoModuleActions > オリジナルActions > sfActions > sfAction > sfComponent
generateコマンド
php symfony doctrine:generate-admin app_name module_name
デフォルトで用意されているアクションのメソッド
// モジュール名を返す。
$this->getModuleName()
// アクション名を返す。
$this->getActionName()
// contextを取得する。
$this->getContext()
// ブラウザ入力、フォーム入力を取得する。
$this->getRequest()
// ヘッダー情報やステータス情報などを取得する。
$this->getResponse()
// セッション情報(userオブジェクト)を取得する。
$this->getUser()
// モジュールとアクション名でのforward。
$this->forward($module, $action)
// URLによるリダイレクト。ルーティングでのリダイレクトも可能。
$this->redirect($url, $statusCode = 302)
// プレーンなテキストを出力する。Ajax処理の出力に使える。
$this->renderText($text)
// テンプレートの指定。
$this->setTemplate($name, $module = null)
// レイアウトの指定。
$this->setLayout($name)
マジックメソッド
アクションclass内では特にプロパティーの宣言をしなくともプロパティを自由に追加できる。
例えば、以下のように値を代入すると、テンプレート上でもその値を使うことができる。smartyのアサインのような定義も不要。
①アクション上でプロパティ宣言していないfooに値を設定。
$this->foo = "test";
②テンプレート上で$fooが使える。
echo $foo;