Soumettre la recherche
Mettre en ligne
Silex入門
•
9 j'aime
•
7,893 vues
Takuya Sato
Suivre
第15回 LOCAL PHP部 勉強会
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 34
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
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
Recommandé
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
Contenu connexe
Tendances
今、最もイケてる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
Tendances
(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
En vedette
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
En vedette
(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
Similaire à 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
Similaire à 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
Plus de Takuya Sato
レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方
Takuya Sato
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発
Takuya Sato
本当は怖いPHP
本当は怖いPHP
Takuya Sato
PHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Takuya Sato
Plus de Takuya Sato
(6)
レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発
本当は怖いPHP
本当は怖いPHP
PHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストア
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Dernier
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Dernier
(11)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
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.
おわり
Télécharger maintenant