7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

symfony 1.4 メモ(アクション)

Last updated at Posted at 2017-03-31

今さら symfony 1.4 と言われそうですが、まだ稼働しているアプリがあるので、自分用のメモ書きです。

  1. symfony 1.4 メモ(アクション)
  2. symfony 1.4 メモ(context)
  3. symfony 1.4 メモ(モデル)
  4. symfony 1.4 メモ(schemaの書き方)
  5. symfony 1.4 メモ(Doctrine)
  6. symfony 1.4 メモ(フォーム)
  7. symfony 1.4 メモ(コマンド)
  8. symfony 1.4 メモ(ユーティリティ)

アクションの継承

moduleActions > autoModuleActions > sfActions > sfAction > sfComponent

Adminジェネレータで生成するとcacheフォルダにアクション(autoModuleActions)やテンプレートが生成される。
追加したいアクションや上書きしたいアクションについて、モジュールアクションやモジュールテンプレートを追加する。

generatorのカスタマイズ

/data/generator/sfDoctrineModule/defaultautoModuleActions のテンプレートが入っている。
オリジナルのテンプレートを作り、モジュール毎の generator.yml に作成したテーマを指定すれば
オリジナルのテンプレートで autoModuleActions を作れる。

sfDoctrineGenerator を継承するオリジナルのgeneratorクラスを作っておけば
generate時の振る舞いもカスタマイズできる。

generator.yml
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;
7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?