Suche senden
Hochladen
Silex入門
•
9 gefällt mir
•
7,891 views
Takuya Sato
Folgen
第15回 LOCAL PHP部 勉強会
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 34
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 Silex
Masao Maeda
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
CodeIgniter入門
CodeIgniter入門
Sho A
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
Kenta Hattori
メタプログラミングRuby勉強会#7(fluentプラグイン)
メタプログラミングRuby勉強会#7(fluentプラグイン)
Ashitaba YOSHIOKA
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Tasuku Otani
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
fukuoka.ex
Empfohlen
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 Silex
Masao Maeda
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
CodeIgniter入門
CodeIgniter入門
Sho A
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
Kenta Hattori
メタプログラミングRuby勉強会#7(fluentプラグイン)
メタプログラミングRuby勉強会#7(fluentプラグイン)
Ashitaba YOSHIOKA
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう
Tasuku Otani
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
fukuoka.ex
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
leverages_event
Laravelの認証について
Laravelの認証について
Takeo Noda
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
Kenichirou Oyama
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
FuelPHPでSentry導入
FuelPHPでSentry導入
fagai
20130606 alfresco study16audit
20130606 alfresco study16audit
Takeshi Totani
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
kk_Ataka
PHP勉強会 #51
PHP勉強会 #51
Takako Miyagawa
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Issei Nishigata
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
sugoto
FuelPHPをさわってみて
FuelPHPをさわってみて
Sotaro Omura
Apache Solr 入門
Apache Solr 入門
順平 西本
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
OSS開発勉強会-03
OSS開発勉強会-03
Kohei KaiGai
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
Hidetoshi Hirokawa
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
Silex 入門
Silex 入門
Masao Maeda
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
俊雄 朝山
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
徹底攻略!PHP5.4
徹底攻略!PHP5.4
Takuya Sato
Weitere ähnliche Inhalte
Was ist angesagt?
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
leverages_event
Laravelの認証について
Laravelの認証について
Takeo Noda
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
Kenichirou Oyama
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
FuelPHPでSentry導入
FuelPHPでSentry導入
fagai
20130606 alfresco study16audit
20130606 alfresco study16audit
Takeshi Totani
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
kk_Ataka
PHP勉強会 #51
PHP勉強会 #51
Takako Miyagawa
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Issei Nishigata
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
sugoto
FuelPHPをさわってみて
FuelPHPをさわってみて
Sotaro Omura
Apache Solr 入門
Apache Solr 入門
順平 西本
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
OSS開発勉強会-03
OSS開発勉強会-03
Kohei KaiGai
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
Hidetoshi Hirokawa
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
Was ist angesagt?
(18)
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
Laravelの認証について
Laravelの認証について
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
FuelPHPでSentry導入
FuelPHPでSentry導入
20130606 alfresco study16audit
20130606 alfresco study16audit
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
PHP勉強会 #51
PHP勉強会 #51
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
FuelPHPをさわってみて
FuelPHPをさわってみて
Apache Solr 入門
Apache Solr 入門
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
OSS開発勉強会-03
OSS開発勉強会-03
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
Andere mochten auch
Silex 入門
Silex 入門
Masao Maeda
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
俊雄 朝山
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
徹底攻略!PHP5.4
徹底攻略!PHP5.4
Takuya Sato
本番環境で使いたいPHP
本番環境で使いたいPHP
Takuya Sato
Silex and Twig (PHP Dorset talk)
Silex and Twig (PHP Dorset talk)
Dave Hulbert
mroongaで全文検索をちょっぱやにしてみた
mroongaで全文検索をちょっぱやにしてみた
Yuya TAMANO
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
Takuya Sato
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)
Hidenori Goto
フレームワーク使おうぜ!
フレームワーク使おうぜ!
Takuya Sato
MySQL対応全文検索システムMroonga(むるんが)
MySQL対応全文検索システムMroonga(むるんが)
Hideshi Ogoshi
Silex: From nothing to an API
Silex: From nothing to an API
chrisdkemper
Silex, the microframework
Silex, the microframework
Inviqa
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
Vue.js入門
Vue.js入門
Takuya Sato
サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)
Keisuke Kadoyama
オウンドメディアのコンテンツ事例集40選(サムライト)
オウンドメディアのコンテンツ事例集40選(サムライト)
サムライト株式会社
ここまで来た!2017年 Web VRでできること
ここまで来た!2017年 Web VRでできること
Jun Ito
PHPerだってMicroservicesしたい!
PHPerだってMicroservicesしたい!
Shinichi Takahashi
PHPの今とこれから2016
PHPの今とこれから2016
Rui Hirokawa
Andere mochten auch
(20)
Silex 入門
Silex 入門
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
2009年のPHPフレームワーク
2009年のPHPフレームワーク
徹底攻略!PHP5.4
徹底攻略!PHP5.4
本番環境で使いたいPHP
本番環境で使いたいPHP
Silex and Twig (PHP Dorset talk)
Silex and Twig (PHP Dorset talk)
mroongaで全文検索をちょっぱやにしてみた
mroongaで全文検索をちょっぱやにしてみた
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)
フレームワーク使おうぜ!
フレームワーク使おうぜ!
MySQL対応全文検索システムMroonga(むるんが)
MySQL対応全文検索システムMroonga(むるんが)
Silex: From nothing to an API
Silex: From nothing to an API
Silex, the microframework
Silex, the microframework
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Vue.js入門
Vue.js入門
サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)
オウンドメディアのコンテンツ事例集40選(サムライト)
オウンドメディアのコンテンツ事例集40選(サムライト)
ここまで来た!2017年 Web VRでできること
ここまで来た!2017年 Web VRでできること
PHPerだってMicroservicesしたい!
PHPerだってMicroservicesしたい!
PHPの今とこれから2016
PHPの今とこれから2016
Ähnlich wie Silex入門
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
Using Dancer
Using Dancer
Yoshihiro Sasaki
第21回Creators MeetUp
第21回Creators MeetUp
Kenichi Mukai
swooleを試してみた
swooleを試してみた
Yukihiro Katsumi
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Yuki Shibazaki
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Inside mobage platform
Inside mobage platform
Toru Yamaguchi
Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
chobi e
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Php in ruby
Php in ruby
do_aki
test
test
a1yama1123
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
Ähnlich wie Silex入門
(20)
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
Using Dancer
Using Dancer
第21回Creators MeetUp
第21回Creators MeetUp
swooleを試してみた
swooleを試してみた
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
知って得する標準関数の使い方
知って得する標準関数の使い方
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Inside mobage platform
Inside mobage platform
Web技術勉強会 20100925
Web技術勉強会 20100925
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Php in ruby
Php in ruby
test
test
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
Mehr von Takuya Sato
レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方
Takuya Sato
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発
Takuya Sato
本当は怖いPHP
本当は怖いPHP
Takuya Sato
PHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Takuya Sato
Mehr von Takuya Sato
(6)
レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発
本当は怖いPHP
本当は怖いPHP
PHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストア
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Kürzlich hochgeladen
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Kürzlich hochgeladen
(10)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Silex入門
1.
第15回 LOCAL PHP部勉強会
講演資料 それいけSilex LOCAL PHP部 佐藤琢哉(@nazo)
2.
この発表では Silexってものが
何なのか わかるようにする よ!
3.
• もうおなじみの佐藤琢哉です • @nazo •
なぞさんって今何やってるの? • それは聞いてはいけない • ただのニート? About
4.
• Symfony2のコンポーネントを 流用 • sinatora風 •
PHP5.3.2以降 • Symfony開発者のFabienさん が、直接開発している Silexとは
5.
• http://silex-project.org/ • INSTALL
NOW! ダウンロード
6.
7.
なにこれ ファイルが1つしか ないんだけど しかもtgzとかzip じゃなくてpharって
8.
• Phar=PHP Archive •
複数のPHPファイルを1つの アーカイブにしたもの • PHPソースから直接include できる おさらい
9.
• Hello Worldでもしてみよう
とりあえず
10.
require_once __DIR__.'/silex.phar'; $app =
new Silex¥Application(); $app->get('/hello/{name}', function ($name) use ($app) { return 'Hello '.$app->escape($name); } ); $app->run();
11.
えっこれだけなの ってかもっと なんかないの
12.
• namespace • new
Silex¥Application() • Silexネームスペースの Applicationクラスを生成 おさらい
13.
• 無名関数 • function($name)
use($app) • ここに一時的な関数を生成 • use($app)は、外部変数$app を、この無名関数内で使用する おさらい
14.
• $app->get()で、GETメソッド で呼ばれるURLに対するルーティング を指定
• もちろんPOSTもあるよ • 表示するHTMLを第二引数で指定 使い方
15.
よしわかった
16.
で、あれとか これとか それとか 使えないの?
17.
• 拡張機能 • もちろんPharに入っているので、 追加で何かダウンロードする必要 はない •
基本的なものは大体ある • 非公式でも結構ある • 自作も可能 Extension
18.
•
DB(DoctrineExtension) • テンプレート(TwigExtension) • セッション(SessionExtension) • ログ(MonologExtension) • 国際化(TranslationExtension) • Validation(ValidatorExtension) • etc… Extension
19.
使用例 $app->register(new Acme¥DatabaseExtension(), array(
'database.dsn' => 'mysql:host=localhost;dbname=myapp', 'database.user' => 'root', 'database.password' => 'secret_root_password', )); // $app['database'] にインスタンスが入る Extension
20.
• Symfony1から使われてる Doctrineをそのまま使える • ただしDBAL(DB抽象レイヤ)のみ、 ORMは使えない
• 非公式でORMが使えるExtension は存在する • DoctrineそのものはSilex.pharには 入っていないので注意 DB(Doctrine)
21.
$app->register(new Silex¥Extension¥DoctrineExtension(), array(
'db.options' => array( 'driver' => 'pdo_sqlite', 'path' => __DIR__.'/app.db', ), 'db.dbal.class_path' => __DIR__.'/vendor/doctrine-dbal/lib', 'db.common.class_path' => __DIR__.'/vendor/doctrine-common/lib', )); $app->get('/blog/show/{id}', function ($id) use ($app) { $sql = "SELECT * FROM posts WHERE id = ?"; $post = $app['db']->fetchAssoc($sql, array((int) $id)); return "<h1>{$post['title']}</h1>". "<p>{$post['body']}</p>"; }); DB(Doctrine)
22.
• Symfony2のテンプレートエンジ
ンが使える • TwigそのものはSilex.pharには 入っていないので注意 テンプレート(Twig)
23.
$app->register(new Silex¥Extension¥TwigExtension(), array(
'twig.path' => __DIR__.'/views', 'twig.class_path' => __DIR__.'/vendor/twig/lib', )); $app->get('/hello/{name}', function ($name) use ($app) { return $app['twig']->render('hello.twig', array( 'name' => $name, )); }); テンプレート(Twig)
24.
• セッション管理 • 一般的な$_SESSIONと同等 •
設計上はCookie以外にも保存 できる セッション(Session)
25.
$app->register(new Silex¥Extension¥SessionExtension()); use Symfony¥Component¥HttpFoundation¥Response; $app->get('/login',
function () use ($app) { $username = $app['request']->server->get('PHP_AUTH_USER', false); $password = $app['request']->server->get('PHP_AUTH_PW'); if ('igor' === $username && 'password' === $password) { $app['session']->set('user', array('username' => $username)); return $app->redirect('/account'); } $response = new Response(); $response->headers->set('WWW-Authenticate', sprintf('Basic realm="%s"', 'site_login')); $response->setStatusCode(401, 'Please sign in.'); return $response; }); $app->get('/account', function () use ($app) { if (null === $user = $app['session']->get('user')) { return $app->redirect('/login'); } return "Welcome {$user['username']}!"; }); セッション(Session)
26.
ところでさっきから 1ファイルに書いて
るけど 規模が大きくなっ たらどうするの?
27.
• 他のファイルの処理をマウントす
ることができる • 遅延読み込みをすることによって、 規模が大きいアプリケーションで もそれほど重くならない • $app->register等はマウント 先のアプリケーション単位で行う マウント
28.
$app = new
Silex¥Application(); $app->mount('/blog', new Silex¥LazyApplication(__DIR__.'/blog.php')); $app->run(); // blog.php require_once __DIR__.'/silex.phar'; $app = new Silex¥Application(); // あなたのブログアプリケーションを定義 $app->get('/post/{id}', function ($id) { ... }); // アプリケーションのインスタンスを返す return $app; マウント
29.
あと、 アクションは メソッドチェーンで
いろいろ属性を 追加できるよ
30.
• 正規表現で引数をバリデーション • $app->get(…)->assert('id',
'¥d'); 簡単なバリデーション
31.
• 2~3画面程度のシステム • 使い捨てシステム •
本格開発前のスクラッチ 使いどころ
32.
• そこそこ使える • あれこれやってるうちに普通のフ
レームワークを使ったほうが早い というオチになる可能性もある ので注意 本格的には使える?
33.
• 公式 • http://silex-users-jp.phper.jp/
• ↑必見 もっと知りたい!
34.
おわり
Jetzt herunterladen