Soumettre la recherche
Mettre en ligne
Laravel本とコミュニティの話
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
1,642 vues
Kazuaki KURIU
Suivre
2018-11-28 ららびゅう座談会でご紹介したスライドです。
Lire moins
Lire la suite
Technologie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 48
Télécharger maintenant
Recommandé
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
初めてのPadrino
初めてのPadrino
Takeshi Yabe
3 tips of Laravel
3 tips of Laravel
Kazuaki KURIU
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
Recommandé
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
初めてのPadrino
初めてのPadrino
Takeshi Yabe
3 tips of Laravel
3 tips of Laravel
Kazuaki KURIU
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
LaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Kenjiro Kubota
Apache Drill を利用した実データの分析
Apache Drill を利用した実データの分析
MapR Technologies Japan
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
terurou
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
OpenStack Trove 技術解説
OpenStack Trove 技術解説
Toru Makabe
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
Koichi Fujikawa
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Shigeru UCHIYAMA
Backlogでの Perlのつかいかた
Backlogでの Perlのつかいかた
Ryuzo Yamamoto
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
Shohei Okada
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Kazumi Hirose
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
Salesforce Developers Japan
自社のメインプロダクトにGoを導入したぞ++
自社のメインプロダクトにGoを導入したぞ++
Kazuaki KURIU
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
Kazuaki KURIU
Contenu connexe
Similaire à Laravel本とコミュニティの話
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
LaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Kenjiro Kubota
Apache Drill を利用した実データの分析
Apache Drill を利用した実データの分析
MapR Technologies Japan
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
terurou
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
OpenStack Trove 技術解説
OpenStack Trove 技術解説
Toru Makabe
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
Koichi Fujikawa
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Shigeru UCHIYAMA
Backlogでの Perlのつかいかた
Backlogでの Perlのつかいかた
Ryuzo Yamamoto
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
Shohei Okada
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Kazumi Hirose
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
Salesforce Developers Japan
Similaire à Laravel本とコミュニティの話
(20)
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
LaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Apache Drill を利用した実データの分析
Apache Drill を利用した実データの分析
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
The master plan ofscaling a web application
The master plan ofscaling a web application
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
OpenStack Trove 技術解説
OpenStack Trove 技術解説
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Laravel5を使って開発してみた
Laravel5を使って開発してみた
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
laravel x モバイルアプリ
laravel x モバイルアプリ
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Backlogでの Perlのつかいかた
Backlogでの Perlのつかいかた
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
Plus de Kazuaki KURIU
自社のメインプロダクトにGoを導入したぞ++
自社のメインプロダクトにGoを導入したぞ++
Kazuaki KURIU
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
Kazuaki KURIU
アプリチームを支えるSlack bot
アプリチームを支えるSlack bot
Kazuaki KURIU
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
Kazuaki KURIU
BITRISEを使っています
BITRISEを使っています
Kazuaki KURIU
Metadataリジェクトあれこれ
Metadataリジェクトあれこれ
Kazuaki KURIU
Yokohama North Meetup #2
Yokohama North Meetup #2
Kazuaki KURIU
エンジニアのためのアイコン作成勉強会
エンジニアのためのアイコン作成勉強会
Kazuaki KURIU
Tanabata.trac.LT発表資料
Tanabata.trac.LT発表資料
Kazuaki KURIU
Plus de Kazuaki KURIU
(9)
自社のメインプロダクトにGoを導入したぞ++
自社のメインプロダクトにGoを導入したぞ++
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
アプリチームを支えるSlack bot
アプリチームを支えるSlack bot
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
BITRISEを使っています
BITRISEを使っています
Metadataリジェクトあれこれ
Metadataリジェクトあれこれ
Yokohama North Meetup #2
Yokohama North Meetup #2
エンジニアのためのアイコン作成勉強会
エンジニアのためのアイコン作成勉強会
Tanabata.trac.LT発表資料
Tanabata.trac.LT発表資料
Dernier
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Dernier
(9)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介: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」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Laravel本とコミュニティの話
1.
裏話的な • スケジュール • 幻のパフォーマンスチューニング •
エモい話 Laravel本と コミュニティの話 ららびゅう座談会vol.1 2018-11-28 @kurikazu
2.
@kurikazu • 栗生 和明 •
ディップ株式会社 • 求人広告メディアの Web, アプリのPM • エンジニアチームの 組織改善 • エンジニア採用
3.
• 社内プロダクトでの 開発支援 • Laravel答えるタイム •
Laravel Meetup Tokyo スタッフ • Laravel JP Conference スタッフ rel Laravel
4.
今日の話 • 普段の Laravel
の使いどころ • Laravel JP Conference • Laravel Meetup Tokyo • 本の話
5.
普段のLaravelの利用について
6.
普段のLaravelの利用について • 採用担当者向けサイト &
バッチ • 関連サービス(採用業務支援ツール) • 社内向け業務ツール etc…
7.
主な機能 • 求人情報編集 • 採用担当者管理 •
応募者管理 • 企業ごとの契約情報管理 • データレプリケーション • 各種メール配信 • 提携サイトへのデータ配信・ アップロード • その他、システムへのデータ連係
8.
詳しいお話は座談会にて…
9.
10.
Laravel JP Conference 2019年2月16日(土) 田町グランパークカンファレンス
11.
12.
Laravel JP Conference •
LaravelやLumen、その周辺技術を 題材にしたセッション、実例などのトーク • PHPやその周辺技術、設計などのセッション、トーク • ワークショップ • その他企画を検討中
13.
Laravel JP Conference トーク募集中! (30分&5分)
14.
Laravel JP Conference •
FacadeもEloquentもバリバリ使って 開発してる • こんなパッケージ使ってる、カスタマイズしてる • こんなことしようとしたら嵌った • こんな設計で作ってる
15.
多くの人が使っている今だからこそ あなたの話が聞きたい。
16.
Laravel JP Conference 締切は11/30!!!
17.
Laravel JP Conference ご応募お待ちしています! https://conference2019.laravel.jp/
18.
Laravel Meetup Tokyo について
19.
Laravel Meetup Tokyo •
2013-05-23 #1 開催 • 現在#11 まで実施 • #3 初参加 • #4 トーク&開催お手伝い • #8 メインスタッフ
20.
• これまでやってきたこと • Laravel
Testing Decoded (JP) 読書会 • もくもく会 • Laravel vs Yii • Freek さんのトーク (@freekmurze) • 最近は20分トーク+LT Laravel Meetup Tokyo
21.
Laravel Meetup Tokyo •
参加者たくさん(ありがとうございます) • 現場での導入事例を聞ける場 (最近は設計話が増えてきた気がする) [主催者として] • 様々な知見を得る • 学ぶ&アウトプットの 「場所」をつくる
22.
裏話的な • スケジュール • 幻のパフォーマンスチューニング •
エモい話 Laravel本について
23.
裏話的な • スケジュール • 幻のパフォーマンスチューニング •
エモい話 Overview PHPフレームワーク Laravel Webアプリケーション開発 バージョン 5.5 LTS対応 • 竹澤さん、新原さん、大村さんとの共著 • 2018年9月26日発売、544ページ • 出版:ソシム社 ※ ソシム社のページにGitHubのURLと 正誤表があります。ご参照ください。
24.
裏話的な • スケジュール • 幻のパフォーマンスチューニング •
エモい話 こぼれ話・・・の前に せっかくなので
25.
裏話的な • スケジュール • 幻のパフォーマンスチューニング •
エモい話 Laravelのライフサイクル (2-1章)について コードを潜ってみましょう
26.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ ※査読前の図をつかいます
27.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ
28.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ View public/index.php GlobalMiddleware実行(前処理) Router RouteMiddleware実行(前処理) RDBMS RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller オートローダ • Laravelで使うPHPファイ ルを include
や require でいちいち読み込まなく ても利用できるようにす る設定 • 設定ファイルは composerが生成 ⇒ FileNotFound は composer update で解決するかも
29.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ
30.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ フレームワーク 起動 • Applicationクラス=サー ビスコンテナのインスタ ンスを生成 • 上記インスタンスに Kernelクラスと Exceptionクラスを バインド •
上記インスタンスを返却
31.
<?php define('LARAVEL_START', microtime(true)); require __DIR__.'/../vendor/autoload.php'; $app
= require_once __DIR__.'/../bootstrap/app.php'; $kernel = $app->make(Illuminate¥Contracts¥Http¥Kernel::class); $response = $kernel->handle( $request = Illuminate¥Http¥Request::capture() ); $response->send(); $kernel->terminate($request, $response); public/index.php
32.
bootstrap/app.php <?php // Applicationクラス(サービスコンテナ)インスタンスの取得 $app =
new Illuminate¥Foundation¥Application( realpath(__DIR__.'/../') ); // Kernelなどのクラスをシングルトン指定でバインド $app->singleton( Illuminate¥Contracts¥Http¥Kernel::class, App¥Http¥Kernel::class ); $app->singleton( Illuminate¥Contracts¥Console¥Kernel::class, App¥Console¥Kernel::class ); $app->singleton( Illuminate¥Contracts¥Debug¥ExceptionHandler::class, App¥Exceptions¥Handler::class ); return $app;
33.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ
34.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ カーネルクラス 初期化 • Kernelクラスの初期化 (ミドルウェアリストの 読み込み)
35.
<?php define('LARAVEL_START', microtime(true)); require __DIR__.'/../vendor/autoload.php'; $app
= require_once __DIR__.'/../bootstrap/app.php'; $kernel = $app->make(Illuminate¥Contracts¥Http¥Kernel::class); $response = $kernel->handle( $request = Illuminate¥Http¥Request::capture() ); $response->send(); $kernel->terminate($request, $response); public/index.php
36.
AppHttpKernel <?php namespace App¥Http; use Illuminate¥Foundation¥Http¥Kernel
as HttpKernel; class Kernel extends HttpKernel { protected $middleware = [ // (略) protected $middlewareGroups = [ // (略) 'web' => [ // (略) 'api' => [ // (略) ]; protected $routeMiddleware = [ // (略) } ミドルウェアを定義する コンストラクタメソッドは こっちにある
37.
Illuminate¥Foundation¥Http¥Kernel public function __construct(Application
$app, Router $router) { $this->app = $app; $this->router = $router; $router->middlewarePriority = $this->middlewarePriority; foreach ($this->middlewareGroups as $key => $middleware) { $router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } Middleware定義を ルータに登録 Middleware定義を ルータに登録 Middleware定義を ルータに登録
38.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ
39.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ ・動作環境の読込 ・Configファイル読込 ・エラーハンドラの読込 ・Facade定義の読込 ・ServiceProviderの読込 および登録 (サービスコンテナへのバ インド) アプリケーション 初期処理
40.
<?php define('LARAVEL_START', microtime(true)); require __DIR__.'/../vendor/autoload.php'; $app
= require_once __DIR__.'/../bootstrap/app.php'; $kernel = $app->make(Illuminate¥Contracts¥Http¥Kernel::class); $response = $kernel->handle( $request = Illuminate¥Http¥Request::capture() ); $response->send(); $kernel->terminate($request, $response); public/index.php
41.
Illuminate¥Foundation¥Http¥Kernel public function handle($request) { try
{ $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request); } catch (Exception $e) { $this->reportException($e); $response = $this->renderException($request, $e); } catch (Throwable $e) { $this->reportException($e = new FatalThrowableError($e)); $response = $this->renderException($request, $e); } $this->app['events']->dispatch( new Events¥RequestHandled($request, $response) ); return $response; }
42.
protected function sendRequestThroughRouter($request) { $this->app->instance('request',
$request); Facade::clearResolvedInstance('request'); // この中で前述の初期処理たちを実行 $this->bootstrap(); return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this- >middleware) ->then($this->dispatchToRouter()); } Illuminate¥Foundation¥Http¥Kernel
43.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ
44.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ ルータ 〜 ミドルウェア
〜 コントローラ • ミドルウェア[前処理] • グローバル • Web, APIグループ • ルート • コントローラ • ミドルウェア[後処理] • レスポンスを返却
45.
Symfony¥Component¥HttpFoundation¥Request public static function
createFromGlobals() { $server = $_SERVER; if ('cli-server' === PHP_SAPI) { if (array_key_exists('HTTP_CONTENT_LENGTH', $_SERVER)) { $server['CONTENT_LENGTH'] = $_SERVER['HTTP_CONTENT_LENGTH']; } if (array_key_exists('HTTP_CONTENT_TYPE', $_SERVER)) { $server['CONTENT_TYPE'] = $_SERVER['HTTP_CONTENT_TYPE']; } } // GETやPOST以外にも、cookieやserver変数も含めて$requestクラスに格納される $request = self::createRequestFromFactory($_GET, $_POST, array(), $_COOKIE, $_FILES, $server); if (0 === strpos($request->headers->get('CONTENT_TYPE'), 'application/x-www-form-urlencoded') && in_array(strtoupper($request->server->get('REQUEST_METHOD', 'GET')), array('PUT', 'DELETE', 'PATCH')) ) { parse_str($request->getContent(), $data); $request->request = new ParameterBag($data); } return $request; } Symfonyから Requestクラスを生成
46.
protected function sendRequestThroughRouter($request) { $this->app->instance('request',
$request); Facade::clearResolvedInstance('request'); $this->bootstrap(); // ルータ以降の処理を実行 return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this- >middleware) ->then($this->dispatchToRouter()); } Illuminate¥Foundation¥Http¥Kernel
47.
View public/index.php [オートローダー読込] public/index.php [フレームワーク起動] bootstrap/app.php GlobalMiddleware実行(前処理) [アプリケーション初期処理] Kernelクラス初期化 RouteMiddleware実行(前処理) RDB RouteMiddleware実行(後処理) GlobalMiddleware実行(後処理) Request Response Model Controller ※MVCパターンの場合 ルータ ルータ 裏話的な • スケジュール • 幻のパフォーマンスチューニング •
エモい話 中身を知るメリット • Laravel は比較的制約のゆるいフレームワーク → 自由度が高い • ある程度ルールを決めないと簡単に壊れる • 機能をつくる、あるいは増やすときに より適切なアプローチを取れる • IDEの関数ジャンプの機能を使って コアのコードに触れてみるといいよ
48.
Enjoy Laravel!
Télécharger maintenant