RoadRunner ⇆ Lumen bridge boilerplate
Example of using RoadRunner webserver for Lumen application.
Clone this repo by:
$ git clone git@github.com:mobypolo/docker-roadrunner-lumen-clean-boilerplate.git .
Then simple run:
$ make up
Installed
make
command and docker with docker-compose is required (how to install make or how to install docker).
That's all!
Feel free to change .rr.local.yaml
config in your work directory (full example can be found here).
You may see worked instances of RR by:
$ rr workers -i -c /app/.rr.yaml
You must do it in your docker container.
You should avoid to use HTTP controller constructors (created or resolved instances in a constructor can be shared between different requests). Use dependencies resolving in a controller methods instead.
Bad:
<?php
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* The user repository instance.
*/
protected $users;
/**
* @var Request
*/
protected $request;
/**
* @param UserRepository $users
* @param Request $request
*/
public function __construct(UserRepository $users, Request $request)
{
$this->users = $users;
$this->request = $request;
}
/**
* @return Response
*/
public function store(): Response
{
$user = $this->users->getById($this->request->id);
// ...
}
}
Good:
<?php
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* @param Request $request
* @param UserRepository $users
*
* @return Response
*/
public function store(Request $request, UserRepository $users): Response
{
$user = $users->getById($request->id);
// ...
}
}
If you find any package errors or want to help, please, make an issue in a current repository.
MIT License (MIT). Please see LICENSE
for more information. Fully inspired by eplightning and Spiral Scout.