Skip to content

mobypolo/docker-roadrunner-lumen-clean-boilerplate

Repository files navigation

logo

RoadRunnerLumen bridge boilerplate

License badge_php_v badge_lumen_v

Example of using RoadRunner webserver for Lumen application.

Usage

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.

Remember about known issues

Controller constructors

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);

        // ...
    }
}

Support

If you find any package errors or want to help, please, make an issue in a current repository.

License

MIT License (MIT). Please see LICENSE for more information. Fully inspired by eplightning and Spiral Scout.

About

Example of using Road Runner webserver with Lumen 8 with PHP 8

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published