4/14夜中にLumenなるマイクロフレームワークが発表されました。
Laravelのマイクロフレームワーク版です。
同じIlluminateコンポーネントを利用して、
ルーターは最速ルーティングライブラリとも言われる nikic/FastRoute を利用しています。
どんなもんか早速さらっと紹介しましょう!
ちなみにLaravelのチュートリアルとかでおなじみのMatt Stauffer氏が記事書いてました。
それを見るだけでも雰囲気はわかるとおもいますヨ。
ドキュメントも合わせてみてみましょう。
# インストーラー利用ならば $ composer global require "laravel/lumen-installer=~1.0" $ lumen new service # composerオンリーならば $ composer create-project laravel/lumen プロジェクト名 --prefer-dist必要なものはLaravelと同じですね
PHP >= 5.4
Mcrypt PHP Extension
OpenSSL PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
このあたりは数日後にネット上でたくさん見るようになるでしょう。
$app->get('/sample', 'App\Http\Controllers\Controller@index');
fastRouteのリポジトリも見るとルーティングの書き方がわかると思います。
// 読み込むコンフィグファイル
$app->configure('app');
// 値
dd(config('app.key'));
'auth' => 'registerAuthBindings',
'Illuminate\Contracts\Auth\Guard' => 'registerAuthBindings',
'auth.password' => 'registerAuthBindings',
'Illuminate\Contracts\Auth\PasswordBroker' => 'registerAuthBindings',
'Illuminate\Contracts\Bus\Dispatcher' => 'registerBusBindings',
'cache' => 'registerCacheBindings',
'Illuminate\Contracts\Cache\Factory' => 'registerCacheBindings',
'Illuminate\Contracts\Cache\Repository' => 'registerCacheBindings',
'config' => 'registerConfigBindings',
'composer' => 'registerComposerBindings',
'cookie' => 'registerCookieBindings',
'Illuminate\Contracts\Cookie\Factory' => 'registerCookieBindings',
'Illuminate\Contracts\Cookie\QueueingFactory' => 'registerCookieBindings',
'db' => 'registerDatabaseBindings',
'encrypter' => 'registerEncrypterBindings',
'Illuminate\Contracts\Encryption\Encrypter' => 'registerEncrypterBindings',
'events' => 'registerEventBindings',
'Illuminate\Contracts\Events\Dispatcher' => 'registerEventBindings',
'Illuminate\Contracts\Debug\ExceptionHandler' => 'registerErrorBindings',
'files' => 'registerFilesBindings',
'filesystem' => 'registerFilesBindings',
'Illuminate\Contracts\Filesystem\Factory' => 'registerFilesBindings',
'hash' => 'registerHashBindings',
'Illuminate\Contracts\Hashing\Hasher' => 'registerHashBindings',
'Psr\Log\LoggerInterface' => 'registerLogBindings',
'mailer' => 'registerMailBindings',
'Illuminate\Contracts\Mail\Mailer' => 'registerMailBindings',
'queue' => 'registerQueueBindings',
'queue.connection' => 'registerQueueBindings',
'Illuminate\Contracts\Queue\Queue' => 'registerQueueBindings',
'request' => 'registerRequestBindings',
'Illuminate\Http\Request' => 'registerRequestBindings',
'session' => 'registerSessionBindings',
'session.store' => 'registerSessionBindings',
'Illuminate\Session\SessionManager' => 'registerSessionBindings',
'translator' => 'registerTranslationBindings',
'url' => 'registerUrlGeneratorBindings',
'validator' => 'registerValidatorBindings',
'view' => 'registerViewBindings',
'Illuminate\Contracts\View\Factory' => 'registerViewBindings',
$app->register('App\Providers\AppServiceProvider');