Skip to main content
Symfony2ワークショップ#1
Symfony2
ワークショップ
#1
日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
Symfony2ワークショップ#1
ワークショップの内容
●
サンドボックスを動かす
●
Symfony2のディレクトリやファイルの構成
それぞれの役割概観
●
アクションやビューを作ってみる
●
Twigを使ってみる
Symfony2ワークショップ#1
 
●
参考ドキュメントURL
http://docs.symfony-reloaded.org/master/
http://www.twig-project.org/
ドキュメントのURLは要注意です
Symfony2ワークショップ#1
ではさっそく始めましょう!
準備OK?
Symfony2ワークショップ#1
サンドボックス環境の準備(10分)
●
git://github.com/symfony/symfony-sandbox.git
●
Git環境がない方
→~~~~
●
USBメモリでも配布しています
●
http://localhost/symfony-
sandbox/web/app_dev.php/hello/fabien
●
$ php app/console
動いた方は、プロファイラーやエラーページを見てみてください
Symfony2ワークショップ#1
ディレクトリやファイル(10分)
●
web
●
app
●
src
Symfony2ワークショップ#1
アクションやテンプレート(5分)
●
HelloControllerにtestActionを追加
→src/Appliction/HelloBundle/Controller
HelloController.php
●
テンプレートファイルを追加
→src/Appliction/HelloBundle/Resources/views
/Hello/test.php
●
ルートの追加
→src/Appliction/HelloBundle/Resources/config
routing.yml
         ↓
http://localhost/symfony-
sandbox/web/app_dev.php/hello/test
Symfony2ワークショップ#1
テンプレートの継承(PHP)
app/views/
-
src/Application/HelloBundle/Resources/
views/
-
Hello/
-
-
layout.php
layout.php
index.php
test.php
Symfony2ワークショップ#1
テンプレートの継承(PHP)
app/views/
-
src/Application/HelloBundle/Resources/
views/
-
Hello/
-
-
layout.php
layout.php
index.php
test.php
testAction
render()
Symfony2ワークショップ#1
テンプレートの継承(PHP)
app/views/
-
src/Application/HelloBundle/Resources/
views/
-
Hello/
-
-
layout.php
layout.php
index.php
test.php
_contentスロット
_contentスロット
testAction
render()
Symfony2ワークショップ#1
テンプレートの継承(PHP)
app/views/
-
src/Application/HelloBundle/Resources/
views/
-
Hello/
-
-
layout.php
layout.php
index.php
test.php
_contentスロット
_contentスロット
testAction
render()
レンダリング結果
Symfony2ワークショップ#1
ビューでのヘルパーいろいろ(5分)
●
ビュー内で $view 変数経由
 → echo get_class($this)
 → echo get_class($view)
共通メニュー用のビューを作って埋め込む
 →Resources/views/menu.php
Symfony2ワークショップ#1
(共通メニューを埋め込む)
●
Resources/views/layout.php
$view->render() で埋め込む
symfony 1の「パーシャル」相当の機能
Symfony2ワークショップ#1
他のヘルパー(10分)
●
スロット(スロットヘルパー)
app/views/layout.php
●
【スロットへの値の設定】
$view['slots']->start('title')
$view['slots']->end()
Symfony2ワークショップ#1
actionsヘルパー
●
テンプレートに特定のアクションのレンダリング結果を埋
め込む
symfony 1の「コンポーネント」相当の機能
Symfony2ワークショップ#1
ヘルパーの実体はどこにある?(10分)
●
src/vendor/symfony/src/symfony/
Bundle/FrameworkBundle
Resources/config/templating.xml
Templating/Helper
ActionsHelper.php
:
Component
Templating/Helper
AssetsHelper.php
:
Symfony2ワークショップ#1
Twigを使う(10分)
●
設定の有効化
 app/config/config.ymlでコメントを解除
 app/AppKernel.phpでバンドルのコメントを解除
●
アクションのレンダリング部分で拡張子を変更
Symfony2ワークショップ#1
Twigの機能いろいろ
●
{% include "HelloBundle::menu.php" %}
{% render "HelloBundle:Hello:test" %}
{% block title %}タイトルだよ{% endblock %}
{% if users %}
<ul>
{% for user in users %}
<li>{{ user.username }}</li>
{% endfor %}
</ul>
{% endif %}
Symfony2ワークショップ#1
続きは・・・
●
2次会や、Symfony Midnightで!
 もしくは各自で復習してください!
●
分からないことは、Symfonyユーザー会MLへ
 もしくはtwitter #symfony_jaへ