Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHPカンファレンス関西2012 Silex

4,145 views

Published on

PHPカンファレンス関西2012 Silex

  1. 1. 次世代マイクロフレームワーク Silexサクっと高速Webアプリ開発 PHPカンファレンス関西 2012 日本Symfonyユーザー会
  2. 2. @brtriverSymfonyユーザー会 Silex
  3. 3. Silex
  4. 4. Silex
  5. 5. Silex
  6. 6. Silexの説明の前に... Silex
  7. 7. PHP界には多種多様のフレームワーク が存在している現実 Silex
  8. 8. CakePHP Symfony CodeIgniterZend Framework Ethna FuelPHP Yii Pinoco BEAR Silex .... Silex
  9. 9. 失敗しないフレームワーク選び Silex
  10. 10. なぜフレームワークを使って 開発をするのですか? Silex
  11. 11. フレームワークを使うと便利? •開発コストを抑えることができる •メンテンナンスが行い易い •セキュアなアプリ開発ができる •大人数で作業分担が行える Silex
  12. 12. •開発コストを抑えることができる •学習コストがあるため初期工数は増える•メンテンナンスが行い易い •フレームワークの思想にあった拡張しないとメンテナンス性DOWN•セキュアなアプリ開発ができる •間違った使い方で脆弱性を発生させる可能性•大人数で作業分担が行える •gitなどのバージョン管理のほうが大事 Silex
  13. 13. どのフレームワークを使って開発をするのが良いですか? Silex
  14. 14. 「どのフレームワークが覚えやすいですか?」「どのフレームワークが一番速いですか?」 Silex
  15. 15. 「どのフレームワークが覚えやすいですか?」「どのフレームワークが一番速いですか?」 最適なフレームワーク Silex
  16. 16. 失敗しないフレームワーク選び・何を開発したいのか?・いつまでに開発したいのか?・どのぐらいの規模のアプリなのか?・開発者のレベルはどれぐらいか? Silex
  17. 17. 失敗しないフレームワーク選び万人に適合するフレームワークは存在しないから ぼくのかんがえた さいきょう のふれーむわーく が乱立している Silex
  18. 18. 失敗しないフレームワーク選びフレームワークを使わないというのも選択肢の1つです。 Silex
  19. 19. Silex が さいきょう なパターン Silex
  20. 20. ・PHPでsinatra風な書き方・プロトタイプ開発・ルーティング機能さえあれば良い・モデルや設計はオレにやらせろ・Symfony2も知りたい Silex
  21. 21. <?php1 require_once __DIR__ . /silex.phar ;2 $app = new SilexApplication();3 $app->get( /hello/{name} , function ($name) use ($app) { return こんにちは . $app->escape($name); });4 $app->run();
  22. 22. たったの9行でWebアプリが書ける Silex
  23. 23. 特徴: その1 Silex を理解すればするほど Symfony2 も理解できる Silex
  24. 24. Symfony2 Component base Symfony Components PHP Silex
  25. 25. HONDA ビート (軽自動車)NSXと同様に ミッドシップエンジン・リアドライブが取り入れられ、ほぼ同時期の開発・発売とあって、その相似がとりあげられることもある。実際には開発チームは別々で双方の人的交流もなかったが、ルームミラーは開発陣が意図して NSXと全く同じもの を装備していた。 (wikipedia)
  26. 26. 特徴: その2 方向性がはっきりしている
  27. 27. Silex Philosophy • CLI のツール • 外部の設定ファイルを必須とするような機能 • PHPっぽくない機能 • Silex に多くのコードを追加して実装するような機能https://github.com/fabpot/Silex/wiki/Silex-Philosophy
  28. 28. Silex Philosophy • CLI のツール • 外部の設定ファイルを必須とするような機能 • PHPっぽくない機能 • Silex に多くのコードを追加して実装するような機能https://github.com/fabpot/Silex/wiki/Silex-Philosophy
  29. 29. Silex Philosophy • CLI のツール • 外部の設定ファイルを必須とするような機能 • PHPっぽくない機能 • Silex に多くのコードを追加して実装するような機能https://github.com/fabpot/Silex/wiki/Silex-Philosophy
  30. 30. Silex Philosophy • CLI のツール • 外部の設定ファイルを必須とするような機能 • PHPっぽくない機能 • Silex に多くのコードを追加して実装するような機能https://github.com/fabpot/Silex/wiki/Silex-Philosophy
  31. 31. Silex Philosophy • CLI のツール • 外部の設定ファイルを必須とするような機能 • PHPっぽくない機能 • Silex に多くのコードを追加して実装するような機能https://github.com/fabpot/Silex/wiki/Silex-Philosophy
  32. 32. 特徴: その3 PHP 5.3 を フル活用 Silex
  33. 33. PHP 5.3 を理解する必要がある Silex
  34. 34. PHP 5.3 PHAR ( PHP 5.2.0以降) 名前空間無名関数(クロージャー) Silex
  35. 35. 特徴: その4 DIコンテナ$app = new SilexApplication(); Silex
  36. 36. パラメータとして設定$app[name] = アムロ・レイ ;$app[ some_service] = $app->share( ....(何かの処理)...); Silex
  37. 37. PHAR 名前空間無名関数(クロージャー) DIコンテナ これらを駆使して... Silex
  38. 38. たったの9行でWebアプリが書ける Silex
  39. 39. <?php1 require_once __DIR__ . /silex.phar ;2 $app = new SilexApplication();3 $app->get( /hello/{name} , function ($name) use ($app) { return こんにちは . $app->escape($name); });4 $app->run();
  40. 40. ルーティング毎に 処理を実装 Silex
  41. 41. GET メソッド$app->get( /hello/{name} , function ($name) { return Hello . $name;});POST メソッド$app->post( /hello , function () use ($app) { $name = $app[ request ]->get( name ); return Hello . $name;}); Silex
  42. 42. 特徴: その5 プロバイダー (Provider) Silex
  43. 43. 追加機能をプロバイダーで 拡張可能 Silex
  44. 44. プロバイダーを使うために...$app = new SilexApplication();$app->register(new AcmeHogeProvider()); Silex
  45. 45. プロバイダーを使うために...$app = new SilexApplication();$app->register(new AcmeHogeProvider()); registerメソッドで登録 Silex
  46. 46. 標準のプロバイダー •DoctrineServiceProvider •MonologServiceProvider •SessionServiceProvider •TwigServiceProvider •TranslationServiceProvider •UrlGeneratorServiceProvider •ValidatorServiceProvider •HttpCacheServiceProviderサードパーティのプロバイダー https://github.com/fabpot/Silex/wiki/Third-Party-ServiceProviders
  47. 47. Twigプロバイダー を使うと... Silex
  48. 48. $app[ twig ] にTwigのインスタンスが セットされている
  49. 49. 特徴: その6 使いやすい 日本語ドキュメント Silex
  50. 50. http://silex-users-jp.phper.jp/ Silex
  51. 51. とにかく導入の敷居は低いので触ってみてください Let s try Silex
  52. 52. ご清聴ありがとうございました
  53. 53. すべてのSilex機能を 標準で用意したバージョン Silex Kitchen Editionhttps://github.com/lyrixx/Silex-Kitchen-Edition Silex

×