sfSimplePagePlugin

本家にsfSimplePagePluginというプラグインを登録してみました。
別に新しいものでもなく、以前からsfBasicCMSPluginとして勝手プラグインとして公開していたものに手直ししたものです。

といっても、何なのこのプラグインってことで簡単に説明をば。


その名のとおり、シンプルなページを表示するためのプラグインです。

たとえば

http://example.com/frontend.php/static/page.html

というリクエストであれば、PATH_INFOからプラグインが判断して<プロジェクト>/data/static/page.html
をテンプレートとして表示してくれます。

なので、以下のような

http://example.com/frontend.php/static/hoge/page.html

ディレクトリが指定されていれば<プロジェクト>/data/static/hoge/page.html
をテンプレートとして表示してくれます。

つまりメリットは以下の通りです。

  • アクションファイルを用意しなくてもよい
  • テンプレート名にステータスを表す(Success)文字が不要
  • テンプレートを階層で配置できる
  • ヘッダーやフッターだけを利用したいというほぼ静的なページの作成が簡単

もちろん、画面遷移が伴う(アクションが必要な)処理には不向きです。

symfonyに詳しくないと、「DBアクセスとかできないのでは?」と思われるかもしれませんが大丈夫です。

まず、symfonyの仕組みとしてactionとtemplateがあります。この中でactionは画面遷移部分を担当しています。たとえば、入力画面なのか確認画面なのか、それとも完了画面なのかという感じです。

DBアクセスはORMを通して行いますが、これはアクションからでも利用できますし、テンプレートではコンポーネントという仕組みを使えば利用できます。*1

というわけで、プラグインを導入したフローは以下のようになります。

アクション処理をスルーし(実際はプラグインの中で処理しています)テンプレートの処理を行うだけです。シンプルです。


ちなみに、今回はsfTaskExtraPluginというプラグインを作るためのプラグインを使ってひな形とパッケージを作成しました。

ほとんどの作業をタスクでできるので簡単なのでオススメです。
みなさんもプラグインつくってみませんか?

*1:本当はコンポーネントを使わなくても直接ORM呼べますがコンポーネントを使った方が切り分けができます