Click here to load reader
Upload
hidenori-goto
View
2.254
Download
1
Embed Size (px)
DESCRIPTION
日本Symfonyユーザー会 第1回Symfony2勉強会 Symfony2基礎編
Citation preview
Symfony2ワークショップ#1
Symfony2ワークショップ
#1
日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
Symfony2ワークショップ#1
ワークショップの内容● サンドボックスを動かす● Symfony2のディレクトリやファイルの構成それぞれの役割概観
● アクションやビューを作ってみる● Twigを使ってみる
Symfony2ワークショップ#1
● 参考ドキュメントURLhttp://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
testActionrender()
Symfony2ワークショップ#1
テンプレートの継承(PHP)app/views/ -
src/Application/HelloBundle/Resources/ views/ -
Hello/ -
-
layout.php
layout.php
index.php
test.php
_contentスロット
_contentスロット
testActionrender()
Symfony2ワークショップ#1
テンプレートの継承(PHP)app/views/ -
src/Application/HelloBundle/Resources/ views/ -
Hello/ -
-
layout.php
layout.php
index.php
test.php
_contentスロット
_contentスロット
testActionrender()
レンダリング結果
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へ