SlideShare a Scribd company logo
symfony 1 でSymfonyTemplatingを使い倒してみるKousukeEbihara <ebihara@tejimaya.com>
SymfonyTemplatingとはsymfony 1  でSymfonyTemplatingを使い倒してみる
SymfonyTemplatingとは
SymfonyTemplatingとはSymfony Components のうちの一つSymfony Components は、Symfony 2 の構成要素となるライブラリ群で、単独で使用できるいままでに YAML, Event Dispatcher, Dependency Injection が公開されているYAML と Event Dispatcher はsymfony 1.3  でも使われているRequest Handler が近々公開予定symfony 1.3 でsfFormの独立性が向上したので Form の公開もあるかも
SymfonyTemplatingとはSensio Labs の Fabien Potencierさんによるライブラリ2009 年 9 月 21 日午後 3 時 39 分(日本時間)に公開されたもちろんドキュメントも揃っているhttp://components.symfony-project.org/templating/documentationもちろんユニットテストのカバレッジは 100 %……!
SymfonyTemplatingとはWEB アプリケーションでテンプレートシステムを用いるための必要最小限の機能を提供するほとんどすべての機能が拡張可能(= プロジェクトに合ったテンプレートのパーサなどを選択したり、組み合わせたりする自由がある)
SymfonyTemplatingとは提供される機能テンプレートの読み込みsfTemplateLoaderによってテンプレートが読み込まれる標準で提供されるのはsfTemplateLoaderFilesystemという、ファイル経由でテンプレートを読み込む機構データベースなど任意のストレージからテンプレートを読み込むためのクラスを記述し、それを用いることができるキャッシュのための機構も用意されているsfTemplateLoaderはsfTemplateLoaderChainにより複数指定することが可能
SymfonyTemplatingとは提供される機能テンプレートの出力sfTemplateRendererによってテンプレートがパース、出力される標準で提供されるのはsfTemplateRendererPhpという、テンプレートを PHP スクリプトとしてパースする機構Smarty や PHPTAL など任意のテンプレートエンジンのパーサを利用したクラスを記述し、それを用いることができるsfTemplateRendererは複数指定することが可能
SymfonyTemplatingとは提供される機能テンプレートの埋め込みテンプレートの継承(Djangoやrhacoのようなフレームワークで採用されているやつ)スロット(symfony 1 と同様の機能)ヘルパーsymfony 1 と違い、ヘルパークラスのインスタンスメソッドとしてコールするヘルパーに関しては拡張できなかったのがこれで解決
SymfonyTemplatingの構造Engine埋め込み
継承
スロット
エンコーディング
エスケーピングLoaderRendererHelperFileSystemPHPDBSmartyPHPTALCache
実際に使ってみるsymfony 1  でSymfonyTemplatingを使い倒してみる
実際に使ってみるsymfony 1.3 で SymfonyTemplatingを試してみた http://www.tejimaya.com/archives/3618株式会社手嶋屋開発部の海老原さんによるエントリ2009 年 9 月 21 日午後 6 時 19 分(日本時間)にコードを完成させ、 2009 年 9 月 21 日午後 7 時 53 分(日本時間)にブログを書き上げたコードは以下http://github.com/ebihara/examine-template※cache ディレクトリがないので、使う場合は空ディレクトリ作ってね
実際に使ってみるただし、やっていることはビュークラスを独自のものに差し替えているだけこの程度のことはsymfonyでなくてもできるせっかくsymfonyを使っているのでプラグインで実現できたら面白そうじゃない?
実際に使ってみるsfSymfonyTemplatingViewPluginhttp://github.com/ebihara/sfSymfonyTemplatingViewPlugin株式会社手嶋屋開発部の海老原さんによるプラグイン2009 年 9 月 26 日午前 4 時 36 分に README 作成現在未だ開発中ただ、前述のエントリで紹介した程度のことはできます
sfSymfonyTemplatingViewPluginのアドバンテージSymfonyTemplatingの全機能を利用できる設定ファイルを書き換えるだけで複数ストレージや複数パーサを扱うことができるようになる(予定)symfony 1 のビューに関するあらゆる機能が利用できるヘルパー関数透過的なエスケーピング
使い方(1)symfony 1.0 〜 symfony 1.1symfony 1.2 にアップグレードするsymfony 1.2pluginsディレクトリにプラグインをgit clone してとってくるSymfony 1.3pluginsディレクトリにプラグインをgit clone して取ってきたあと、ProjectConfigurationでプラグインを有効にする
使い方(2)全バージョン共通アプリケーションのlayout.phpの $sf_contentを $this->get(‘content’) に変える(この手順は不要になるようにしていく予定)モジュールのview.ymlに設定を追加default:view_class: sfTemplatingComponent
テンプレートの継承親となるテンプレート内の特定の部分を、子で上書きすることができる機能symfonyのtemplate.phpがいい活用例になる
テンプレートの継承親となるlayout.phpを定義
テンプレートの継承子となるテンプレートを定義
テンプレートの継承結果
テンプレートの埋め込みまあパーシャルみたいなもの
スロットスロットはスロットですよ
sfSymfonyTemplatingViewPluginによる複数ストレージの利用sfSymfonyTemplatingViewPluginでは、設定ファイル(app.yml)でストレージの設定をおこなうことができる以下の設定をおこなうことで DB からテンプレートを読み込み、存在しなかった場合にファイルを見に行くようになる
sfSymfonyTemplatingViewPluginによる複数ストレージの利用実演タイム

More Related Content

PPTX
第4回Symfony2勉強会 基礎編ワークショップ.0
PDF
EventListener使いこなし術 - Symfony勉強会#10
PPT
CV,resume
PPTX
Hybrid Onboarding
PPTX
Introduction of symfony development process & What's symfony 1.3?
KEY
Let's creating your own PHP (tejimaya version)
PPTX
Php5.3ってなんなんだー
PPSX
CV,resume
第4回Symfony2勉強会 基礎編ワークショップ.0
EventListener使いこなし術 - Symfony勉強会#10
CV,resume
Hybrid Onboarding
Introduction of symfony development process & What's symfony 1.3?
Let's creating your own PHP (tejimaya version)
Php5.3ってなんなんだー
CV,resume

Viewers also liked (10)

PPTX
ルーティングを使って シンプルなアプリケーション開発を
KEY
Open pne3 with_symfony
PPTX
OAuthで気持ちのいい アクセス制御を
PDF
お前は PHP の歴史的な理由の数を覚えているのか
PDF
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
PPTX
Bullet boy
PPTX
Bullet boy slide
PPTX
Bullet boy
PPTX
Lock stock presentation
PPTX
This is England powerpoint
ルーティングを使って シンプルなアプリケーション開発を
Open pne3 with_symfony
OAuthで気持ちのいい アクセス制御を
お前は PHP の歴史的な理由の数を覚えているのか
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Bullet boy
Bullet boy slide
Bullet boy
Lock stock presentation
This is England powerpoint
Ad

Similar to Using Symfony Templating On Symfony 1 (10)

PDF
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
ODP
Symfony2 introduction
PDF
Symfony2 intro-20111204
PPTX
Symfony updates
PDF
Symfony勉強会#9 form
PDF
Symfony2 workshop-1
ODP
Guiなテスト環境
PPT
symfony1.2最新動向 - 第二回symfony勉強会
ODP
Symfony 1.4 TIPS from Openpne Source Code
ODP
Symfony2 caching
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 introduction
Symfony2 intro-20111204
Symfony updates
Symfony勉強会#9 form
Symfony2 workshop-1
Guiなテスト環境
symfony1.2最新動向 - 第二回symfony勉強会
Symfony 1.4 TIPS from Openpne Source Code
Symfony2 caching
Ad

Using Symfony Templating On Symfony 1