Installation

Introduction

You can use the Streams Platform as a basis for Laravel projects and leverage it's features just like PyroCMS does.

Before proceeding consider starting your project with a vanilla PyroCMS installation and remove unneeded addons. You can also fork PyroCMS and change the composer.json to fit your businesses needs for projects.

The Streams Platform comes setup and ready right out of the box with PyroCMS.

Installation

Download with Composer

First download the package by running composer require anomaly/streams-platform.

Register the service provider

Next you need to register the service provider with Laravel. To do this add the following service provider to the end of the providers section in config/app.php just as you would any other Laravel package:

<?php

return [

    // ...

    'providers' => [

        // ...

        Anomaly\Streams\Platform\StreamsServiceProvider::class,
    ],

];

Modify the public/index.php file

Next you need to modify the public/index.php file to use the kernels provided by the Streams Platform. This simply overrides the HTTP kernel with a variant designed to deliver HTTP cache. This is a required change.

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$kernel = \Anomaly\Streams\Platform\Http\CacheKernel::wrap($kernel);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

Modify the bootstrap/app.php file

The Streams Platform adds low level functionality to the HTTP and console kernels. In order for this to work properly you must register the kernels provided by the Streams Platform in the bootstrap/app.php file:

$app->singleton(
    Illuminate\Contracts\Http\Kernel::class,
    'Anomaly\Streams\Platform\Http\Kernel'
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    'Anomaly\Streams\Platform\Console\Kernel'
);

Run Streams Installer

Lastly you will need to run the install which will install the database tables.

php artisan install

Configure Users

Your user object must implement Anomaly\Streams\Platform\User\Contract\UserInterface in order to ensure compatibility.

Configure your users provider in config/auth.php. If you are using the Users Module you can use the below configuration:

<?php

return [

    // ...

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model'  => Anomaly\UsersModule\User\UserModel::class,
        ],
    ],
];

Configure the Guest Role

You must set an instance of Anomaly\Streams\Platform\User\Contract\RoleInterface on the \Anomaly\Streams\Platform\Support\Authorizer singleton.

The guest role is responsible for authorizing non-logged in users.

public function register(Authorizer $authorizer) {
    $authorizer->setGuest(new GuestRole());
}