SlideShare a Scribd company logo
@mkkn_info
 みかかね : 後藤知宏
 株式会社 chatbox
 代表取締役
 フロントエンド頑張る
 写真は弊社美人秘書
マネキンのエイミー
フロントエンドやってます。
フロントエンドとバックエンド
プロジェクトは分けたい。
マイクロフレームワーク
埋め込んだり、取り回しが便利
slim silex
期待の新星 lumen
 micro framework
 Laravel 謹製
 早いらしい
 簡単に使える。
$ composer global require "laravel/lumen-installer=~1.0”
$ lumen new service
$ cd service
$ php artisan serve
軽量 シンプル 簡単
(lumen new で生成されるファイルは30程度)
シンプル ≠ 低機能
(Composerで広がる無限の可能性)
laravelベース
(illuminateコンポーネントとの親和性)
SILEX
illuminateコンポーネント symfonyコンポーネント
[app]
• クラスなどを突っ込む場所。
[app/Console/Kernel.php]
• デフォルトのCLIカーネル実装
[app/Exceptions/Handler.php]
• デフォルトの例外ハンドラ実装
[app/Http/routes.php]
• デフォルトのルート定義
[boostrap/app.php]
• $appオブジェクトを生成するファイル。
[public]
• ドキュメントルート。
[resource]
• langとかviewsとか。
[storage]
• ログとかキャッシュとか
 Application クラスをnew して runするだけ。
 デフォルトの構成では`bootstrap/app.php`で$appを作成
し、`index.php`でrunしている。
 オブジェクトをrunするだけで動くから、
バックエンド側の処理を独立プロジェクトとして管理し
つつ、複数のフロントプロジェクトから参照する、みた
いなこともできる。
<?php
$app = new LaravelLumenApplication;
// 何か色々設定する。
$app->run();
 コンテナの登録
<?php
$app->singleton(
'IlluminateContractsDebugExceptionHandler',
'AppExceptionsHandler'
);
$app->singleton(
'IlluminateContractsConsoleKernel',
'AppConsoleKernel'
);
 middlewareの登録
 laravelでつくったMiddlewareとかがそのまま使える。
$app->middleware([
// 'IlluminateCookieMiddlewareEncryptCookies',
// 'IlluminateCookieMiddlewareAddQueuedCookiesToResponse',
// 'IlluminateSessionMiddlewareStartSession',
// 'IlluminateViewMiddlewareShareErrorsFromSession',
// 'LaravelLumenHttpMiddlewareVerifyCsrfToken',
]);
$app->routeMiddleware([
]);
 ルートの登録
 lumenではルートも`$app`に対して登録する。
$app->get(‘/’,function()use($app){
return $app->welcome();
});
 個人的には、Applicationクラスを継承して、独自
Applicationクラスを生成して…という構成がオスス
メ。
 継承を使えば`protected`な値とかもゴリゴリいじれ
て、みんなのオレオレlumenが簡単に作れる。
 ディレクトリ構成の変更
 $basePath: ベースパス。各種パス計算の起点
 $strogePath: ログとかキャッシュとか格納するディレ
クトリ
 $configPath: コンフィグファイルを格納するディレク
トリ
 $resourcePath: langディレクトリの置き場所
こういう独自構成をとったりとか
ここ[app]をまるごとComposerで
vendorディレクトリに切り出したり
とかも可能
 LaravelもLumenも$appは単純にDIコンテナ。
 Lumenも$appにilluminateコンポーネント生やしていく流れ
なので基本的なサービスの使い方とかはLaravelと変わらな
い。
 ディレクトリの構造が可変だったり、
HttpKernelが$appに組み込まれてたり、
ルートが$appで、FastRoute使ってたり、
くらいの違いしか無く、結構簡単に始めれるっぽい。
 コンテナ機能は共通、illuminateコンポーネント使えるし、
artisanもあるし、野生のMiddleware/ServiceProviderも多分
使える。
 configないやん!!とかは基本的に気のせい(config/app.php)
はApplicationクラスとくっついてる感じ。
 Silexよりも他機能で使いやすい。
 ViewとかConfigとか当たり前で使うようなものがパ
フォーマンスに影響しない形で組み込まれてるのは嬉
しい。
 若干取り回しは面倒だったりする。
 サブディレクトリに配置とかすると面倒。自分で
BaseUriみたいな実装が必要だったりする。
ご清聴 ありがとうございました

More Related Content

Similar to Lumen使ってみたレポ

ソースコードの共通化
ソースコードの共通化ソースコードの共通化
ソースコードの共通化
Jun Hosokawa
 
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 SilexPHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 SilexMasao Maeda
 
Symfony2
Symfony2Symfony2
Symfony2
Yusuke Higaki
 
Kubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps についてKubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps について
Shigeru Tatsuta
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
TomoyaTakegoshi
 
TOMOYO Linuxへの道
TOMOYO Linuxへの道TOMOYO Linuxへの道
TOMOYO Linuxへの道
Toshiharu Harada, Ph.D
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
Midori Oge
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
A AOKI
 
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
 
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
Ryusaburo Tanaka
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
Kohei Tokunaga
 
MicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステム
MicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステムMicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステム
MicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステム
Hirofumi Iwasaki
 
Openshift 20191128
Openshift 20191128Openshift 20191128
Openshift 20191128
Yasushi Osonoi
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
vx-pc-club
 
Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315
Takahiro Kujirai
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
Yasushi Osonoi
 
Leiningen超速入門
Leiningen超速入門Leiningen超速入門
Leiningen超速入門
Kiyotaka Kunihira
 
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
Shigeru Tatsuta
 
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
YUSUKE MORIZUMI
 

Similar to Lumen使ってみたレポ (20)

ソースコードの共通化
ソースコードの共通化ソースコードの共通化
ソースコードの共通化
 
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 SilexPHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 Silex
 
Symfony2
Symfony2Symfony2
Symfony2
 
Kubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps についてKubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps について
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
TOMOYO Linuxへの道
TOMOYO Linuxへの道TOMOYO Linuxへの道
TOMOYO Linuxへの道
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
 
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
 
MicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステム
MicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステムMicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステム
MicroProfile 5で超手軽に始める今どきのクラウド完全対応エンタープライズシステム
 
Openshift 20191128
Openshift 20191128Openshift 20191128
Openshift 20191128
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
 
Leiningen超速入門
Leiningen超速入門Leiningen超速入門
Leiningen超速入門
 
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
 
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
 

Recently uploaded

CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 

Recently uploaded (8)

CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 

Lumen使ってみたレポ