yii2-extensions/road-runner

High-performance RoadRunner runtime for Yii2 applications.

Maintainers

Package info

github.com/yii2-extensions/road-runner

pkg:composer/yii2-extensions/road-runner

Transparency log

Statistics

Installs: 1 896

Dependents: 0

Suggesters: 0

Stars: 10

Open Issues: 0

0.3.0 2026-02-28 14:30 UTC

This package is auto-updated.

Last update: 2026-06-29 13:10:37 UTC


README

Yii Framework

RoadRunner


PHPUnit Mutation testing badge PHPStan Security

Supercharge your Yii2 applications with RoadRunner blazing-fast HTTP server
High-performance workers, automatic memory management, and seamless PSR-7 integration

Features

Feature Overview

Demo

Template

Explore the ready-to-run Yii2 + RoadRunner application template.

Installation

composer require yii2-extensions/road-runner:^0.3

Basic Usage

Create your RoadRunner entry point (web/index.php)

<?php

declare(strict_types=1);

require __DIR__ . '/../vendor/autoload.php';

use yii2\extensions\psrbridge\http\Application;
use yii2\extensions\roadrunner\RoadRunner;

// production default (change to 'true' for development)
defined('YII_DEBUG') or define('YII_DEBUG', false);
// production default (change to 'dev' for development)
defined('YII_ENV') or define('YII_ENV', 'prod');

require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

$config = require dirname(__DIR__) . '/config/web.php';

$runner = new RoadRunner(new Application($config));

$runner->run();

RoadRunner configuration

Create .rr.yaml in your project root

version: "3"
rpc:
    listen: "tcp://127.0.0.1:6001"
server:
    command: "php web/index.php"
    relay: pipes
http:
    address: "0.0.0.0:8080"
    # development-only overrides, remove or set to production values for deploys
    env:
        YII_DEBUG: true
        YII_ENV: dev

    headers:
        response:
            "Cache-Control": "no-cache"

    middleware:
        - static # serve files first
        - gzip # compress dynamic output

    static:
        dir: web
        forbid:
            - .php
            - .htaccess
    pool:
        num_workers: 1
        supervisor:
            max_worker_memory: 100
jobs:
    pool:
        num_workers: 2
        max_worker_memory: 100
    consume: {}

kv:
    local:
        driver: memory
        config:
            interval: 60
metrics:
    address: "127.0.0.1:2112"

Start the server

# install RoadRunner binary
vendor/bin/rr get

# start the server
./rr serve

Important

Your application will be available at http://127.0.0.1:8080 (or http://localhost:8080) or at the address set in http.address in .rr.yaml.

Development & Debugging

For enhanced debugging capabilities and proper time display in RoadRunner, install the worker debug extension.

composer require --dev yii2-extensions/worker-debug:^0.1

Add the following to your development configuration (config/web.php):

<?php

declare(strict_types=1);

use yii2\extensions\debug\WorkerDebugModule;

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => WorkerDebugModule::class,
        // uncomment the following to add your IP if you are not connecting from localhost.
        //'allowedIPs' => ['127.0.0.1', '::1'],
    ];
}

File Upload Handling

For enhanced file upload support in worker environments, use the PSR-7 bridge UploadedFile class instead of the standard Yii2 implementation.

<?php

declare(strict_types=1);

use yii2\extensions\psrbridge\http\{Response, UploadedFile};

final class FileController extends \yii\web\Controller
{
    public function actionUpload(): Response
    {
        $file = UploadedFile::getInstanceByName('avatar');

        if ($file !== null && $file->error === UPLOAD_ERR_OK) {
            $file->saveAs('@webroot/uploads/' . $file->name);
        }

        return $this->asJson(['status' => 'uploaded']);
    }
}

Documentation

For detailed configuration options and advanced usage.

Package information

PHP Yii 2.0.x Yii 22.0.x Latest Stable Version Total Downloads

Project status

Codecov PHPStan Level Max Quality StyleCI

Our social networks

Follow on X Follow on Facebook Join our Subreddit Join on Telegram

License

License