Lumen5.2からAPIサービスやJSON APIサービスの構築を中心になるため、sessionやviewはフレームワークに含まれてないです。
Lumenのドキュメントはこちら
Lumenの概要
LumenはLaravelのコンポーネントを使用したマイクロフレームワークで、フルスタックのWebフレームワークSymfonyに対するSilexの位置付けと同じです。Lumenは高速化のために生まれて、同じくマイクロフレームワークsilexより早くて、現在最速のPHPフレームワークの一つです。
Lumenはいつ使うべきか
・大量のトラフィックを捌く必要のあるもの
・APIサーバー
インストール
composerを使って、下記のコマンドでインストールできます。
composer global require "laravel/lumen-installer"
ルーティング
ルートはroutes/web.phpに書きます。
書き方は幾つかあります。
・パラメータがある場合
$app->get('/hello/{uid}/{pass}', 'HelloController@index');
・Route Groupsで使う場合
$app->group(['namespace' => 'App\Http\Controllers'], function($group){
$group->get('hello/{uid}/{pass}', 'HelloController@index');
});
・パラメータのバリデーションチェック
$app->get('/hello/{uid:[0-9]+}/{pass:[0-9]+}', 'HelloController@index');
Middleware
middlewareファイルはapp/Http/Middlewareに格納します。
・ルートに登録する方法
$app->get(
'/hello/{uid}/{pass}',
[
'middleware' => 'before',
'uses' => 'HelloController@index'
]
);
・ bootstrap/app.phpに登録な方法
$app->routeMiddleware([
'before' => App\Http\Middleware\BeforeMiddleware::class,
]);
MiddlewareからControllerにパラメータを渡す方法
簡単な方法でrequestに追加します。
$request->attributes->add(['user' => $user]);
return $next($request);
Controller側受け取る方法
use Illuminate\Http\Request;
public function index(Request $request)
{
$user = $request->get('user');
}
phpUnit テストの使い方
Lumenをインストールすると、デフォルトでphpunit.xmlが設置されています。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/app.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
<exclude>
<file>./app/Http/routes.php</file>
</exclude>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
</php>
</phpunit>
テストの場所
デフォルトの状態では、tests/配下を対象として実行されます。
任意のディレクトリに変更する場合は./testsから忘れずに変更してください。
サンプルで用意されているtests/ExampleTest.phpを実行してみましょう。
Lumenプロジェクトのディレクトリで、実行します。
composerでphpunitを導入した場合は、./vendor/bin/phpunitを指定して実行します。
$ ./vendor/bin/phpunit tests/ExampleTest.php
ファイルを指定して実行する場合は上記の様になります。
全てテストする場合は、
$ ./vendor/bin/phpunit
としてください。