[Symfony2]共通処理を追加する一番簡単な方法

Symfony2の共通処理を書きたいけどサービスとかよくわからない…

もっと簡単にControllerから、さらにはテンプレートからアクセスできる方法はないの!!!という事を調べたら意外と簡単にできたので紹介します。

共通処理で求めるもの

調べていると共通処理の方法ってなんかよくわからないです。

EventListenerだとかなんとか…さらには、Doctrineを使うのも一苦労だったりもっと簡単にControllerと同じように書きたい!っていう面倒な私が調べた結果を紹介します。

マニュアル読めばちゃんと書いてあるんですけどね…英語読むの苦手な人はここみればたぶん大丈夫!というくらいの勢いで書きます。

共通処理用のControllerを作成する

まずは、共通処理用のControllerを作成します。

わかりやすく「CommonController.php」とした名前のControllerを作成して進めていきます。

Controllerは普通に作って大丈夫です。
ただし、今回は共通処理のみに特化したControllerなのでRouteは不要です。

処理メソッドを追加する

メソッドの追加は、いつも通りで問題ありません。

引数も設定できます。Requestの引数を取りたい場合は、呼び出す時に渡さないといけないので「$this->getRequest()」で取ったほうがいいと思います。

テンプレートを使う場合

上記でもわかるように、returnはそのまま返るようになります。

でも、テンプレート使いたい場合もありますよね!
難しく考えず「renderView」を使って文字列として返すだけです!

app/config/config.ymlに共通処理の設定を追加する

ここが一番ややこしい部分で、挫折してしまうのですが下記の書き方を真似れば大丈夫です!

Controllerから共通処理を呼び出す

Controllerから呼び出す時は、getを使うだけで取得できるようになります。

Twigから共通処理を呼び出す

Twigからの呼び出しは下記の呼び出し方になります。

config.ymlで設定した値で呼び出す事が可能になっております。

さいごに

マニュアルを読めばできる内容ですが、日本語での解説が少なく自分自身ちょっと戸惑ってしまった部分でもあるので書きました。

Symfony2は、設定さえしっかり覚えてしまえばやりたいことができるフレームワークなんだと改めて感じることができます。

共通処理をうまく使えば効率もあがりますね!

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です