Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Applicationとは
何か(哲学)
しとりー@ndxbn
しとりー@ndxbn
Web系フリーランス
いまは東銀座の歌舞伎座らへんにいます
PHP歴6年くらい
最近は JavaScript が多い(悲しみ)
@ndxbn
ことの発端
とあるレガシーなオレオレフレームワークにて…
※このコードは、フィクションです。
● DB使わないアプリだってあるだろ!!!!
● メンテしないアプリだってあるだろ!!!!
● じゃあコンストラクタで受け取ってるこいつらなんだよ!!!???
そして…
俺の中で、アプリケーションの定義がゲシュタルト崩壊した
そりゃぁ、哲学したくなりますよね!!!
ということで、
「アプリケーションとは何か」を哲学(笑)しました。
結論からいうと
Applicationとは何か
DIコンテナのこと
アプリケーションソフトウェア(wikipedia)
アプリケーションソフトウェア(英: application software)とは、ユーザーが要求する情報
処理を直接実行するソフトウェアである。
アプリケーション(自己解釈)
Webアプリなら「リクエスト受けて、レスポンス返す」
コンソールアプリなら「引数受けて、レスポンス返す」
→ 「なんか入力を受けて、処理して、レスポンス返すやつ」っていう定義を、良さげな感じ
に設計・実装したやつが...
最近のPHPの各種フレームワークの
Applicationクラス
Applicationクラスの例
Laravel の場合
IlluminateFandationApplication
Symfony の場合
(SymfonyComponentHttpKernel)
CakePHP の場合
AppApplic...
Applicationクラスの探し方
オートローダの登録した直後くらいに作られてるやつが、だいたいそう。
例えば
Laravelの場合
ブラウザでアクセスしたときは オートローダ登録して
require __DIR__.'/../vendor/autoload.php';
Laravelの場合
ブラウザでアクセスしたときは
Application作って
Laravelの場合
ブラウザでアクセスしたときは Applicationに登録された
Web用の処理をする
Laravelの場合
コンソール(ターミナル)からの
処理の場合
オートローダ登録して
require __DIR__.'/../vendor/autoload.php';
Laravelの場合
コンソール(ターミナル)からの
処理の場合
Application作って
Laravelの場合
コンソール(ターミナル)からの
処理の場合
Applicationに登録された
コンソール用の処理をする
CakePHPの場合
オートローダ登録して
require __DIR__.'/../vendor/autoload.php';
CakePHPの場合
Application作って
サーバでの処理として実行
Applicationクラスの探し方実装面での定義
オートローダの登録した直後くらいに作られてるやつ
で、正体なんなの???
Laravelの場合
https://github.com/laravel/framework/blob/master/src/Illuminate/Foundation/Application.php
DIコンテナ
Symfonyの場合
https://github.com/symfony/symfony-standard/blob/master/web/app.php
Symfonyの場合
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/Kernel.php
Symfony system
≒ワークフ...
Symfonyの場合
本当は、Symfonyの本質は、Doctrin ORM とか HTTP Fandation とか を まとめ上げ
る、「Bundler」としてのシステムだったりする。(と思う)
DIコンテナってことでよくね?(雑)
(Sy...
CakePHPの場合
https://github.com/cakephp/app/blob/master/src/Application.php
CakePHPの場合
https://github.com/cakephp/cakephp/blob/master/src/Http/BaseApplication.php
Applicationを作るには、
設定ファイル(パス)が必要
→Ap...
Phalconの場合
https://github.com/phalcon/cphalcon/blob/master/ext/phalcon/application.zep.c
DIコンテナ
Slimの場合
https://github.com/slimphp/Slim/blob/3.x/Slim/App.php
DIコンテナ
(pimple/pimple)
Silexの場合
DIコンテナ
(pimple/pimple)
Fuel の場合
(ナンモ ナイト)
Fuel の場合
オートローダ登録して
Fuel::init
↑こいつじゃね
Fuel の場合
設定必要
→Applicationとは、設定
まとめ
現代において、良く使われるフレームワークでの
Applicationクラスとは、
DIコンテナである(多い)
ナ ナンダッテー!!
Ω ΩΩ
ご清聴ありがとうございました!!!
Applicationとは何か(哲学)(PHPBLT #6)
Próxima SlideShare
Cargando en…5
×

Applicationとは何か(哲学)(PHPBLT #6)

965 visualizaciones

Publicado el

PHP BLT #6 で発表してきたやつ。
最近目にするPHPのフレームワークにおけるApplicationクラスの実装例を見て、アプリケーションとは何か?を哲学(笑)した。

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Applicationとは何か(哲学)(PHPBLT #6)

  1. 1. Applicationとは 何か(哲学) しとりー@ndxbn
  2. 2. しとりー@ndxbn Web系フリーランス いまは東銀座の歌舞伎座らへんにいます PHP歴6年くらい 最近は JavaScript が多い(悲しみ) @ndxbn
  3. 3. ことの発端 とあるレガシーなオレオレフレームワークにて… ※このコードは、フィクションです。
  4. 4. ● DB使わないアプリだってあるだろ!!!! ● メンテしないアプリだってあるだろ!!!! ● じゃあコンストラクタで受け取ってるこいつらなんだよ!!!???
  5. 5. そして… 俺の中で、アプリケーションの定義がゲシュタルト崩壊した そりゃぁ、哲学したくなりますよね!!!
  6. 6. ということで、 「アプリケーションとは何か」を哲学(笑)しました。
  7. 7. 結論からいうと
  8. 8. Applicationとは何か DIコンテナのこと
  9. 9. アプリケーションソフトウェア(wikipedia) アプリケーションソフトウェア(英: application software)とは、ユーザーが要求する情報 処理を直接実行するソフトウェアである。
  10. 10. アプリケーション(自己解釈) Webアプリなら「リクエスト受けて、レスポンス返す」 コンソールアプリなら「引数受けて、レスポンス返す」 → 「なんか入力を受けて、処理して、レスポンス返すやつ」っていう定義を、良さげな感じ に設計・実装したやつが、「Applicationクラス」
  11. 11. 最近のPHPの各種フレームワークの Applicationクラス
  12. 12. Applicationクラスの例 Laravel の場合 IlluminateFandationApplication Symfony の場合 (SymfonyComponentHttpKernel) CakePHP の場合 AppApplication Phalcon の場合 PhalconApplication Slim の場合 SlimApp Silex の場合 SilexApplication Fuel の場合 FuelCoreFuel
  13. 13. Applicationクラスの探し方 オートローダの登録した直後くらいに作られてるやつが、だいたいそう。
  14. 14. 例えば
  15. 15. Laravelの場合 ブラウザでアクセスしたときは オートローダ登録して require __DIR__.'/../vendor/autoload.php';
  16. 16. Laravelの場合 ブラウザでアクセスしたときは Application作って
  17. 17. Laravelの場合 ブラウザでアクセスしたときは Applicationに登録された Web用の処理をする
  18. 18. Laravelの場合 コンソール(ターミナル)からの 処理の場合 オートローダ登録して require __DIR__.'/../vendor/autoload.php';
  19. 19. Laravelの場合 コンソール(ターミナル)からの 処理の場合 Application作って
  20. 20. Laravelの場合 コンソール(ターミナル)からの 処理の場合 Applicationに登録された コンソール用の処理をする
  21. 21. CakePHPの場合 オートローダ登録して require __DIR__.'/../vendor/autoload.php';
  22. 22. CakePHPの場合 Application作って サーバでの処理として実行
  23. 23. Applicationクラスの探し方実装面での定義 オートローダの登録した直後くらいに作られてるやつ
  24. 24. で、正体なんなの???
  25. 25. Laravelの場合 https://github.com/laravel/framework/blob/master/src/Illuminate/Foundation/Application.php DIコンテナ
  26. 26. Symfonyの場合 https://github.com/symfony/symfony-standard/blob/master/web/app.php
  27. 27. Symfonyの場合 https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/Kernel.php Symfony system ≒ワークフロー群
  28. 28. Symfonyの場合 本当は、Symfonyの本質は、Doctrin ORM とか HTTP Fandation とか を まとめ上げ る、「Bundler」としてのシステムだったりする。(と思う) DIコンテナってことでよくね?(雑) (Symfonyわかりません、誰か教えてください)
  29. 29. CakePHPの場合 https://github.com/cakephp/app/blob/master/src/Application.php
  30. 30. CakePHPの場合 https://github.com/cakephp/cakephp/blob/master/src/Http/BaseApplication.php Applicationを作るには、 設定ファイル(パス)が必要 →Applicationとは、設定
  31. 31. Phalconの場合 https://github.com/phalcon/cphalcon/blob/master/ext/phalcon/application.zep.c DIコンテナ
  32. 32. Slimの場合 https://github.com/slimphp/Slim/blob/3.x/Slim/App.php DIコンテナ (pimple/pimple)
  33. 33. Silexの場合 DIコンテナ (pimple/pimple)
  34. 34. Fuel の場合 (ナンモ ナイト)
  35. 35. Fuel の場合 オートローダ登録して Fuel::init ↑こいつじゃね
  36. 36. Fuel の場合 設定必要 →Applicationとは、設定
  37. 37. まとめ 現代において、良く使われるフレームワークでの Applicationクラスとは、 DIコンテナである(多い) ナ ナンダッテー!! Ω ΩΩ
  38. 38. ご清聴ありがとうございました!!!

×