hubchain/gae-support-laravel

Google App Engine (Standard and Flexible Environment) runtime support for Laravel apps.

Maintainers

👁 wyhitomi

Package info

github.com/hubchain/GaeSupportLaravel

pkg:composer/hubchain/gae-support-laravel

Statistics

Installs: 213

Dependents: 0

Suggesters: 0

Stars: 0

v5.5.40 2020-03-17 12:41 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT a2b933fa770b2c599349daced1e0aa85a0c226e4

  • Samuel Melrose <sam.melrose.woop@a1comms.com>

README

Google App Engine (GAE) Standard and Flexible Environment support package for Laravel 5.5 LTS.

👁 Latest Stable Version
👁 Monthly Downloads
👁 Total Downloads
👁 Latest Unstable Version
👁 License

Based on original work for App Engine Standard (on the PHP5.5 runtime) by @shpasser https://github.com/shpasser/GaeSupportL5

This library is designed for homogeneous operation between the Standard Environment and the Flexible Environment.

Note: we only intend to support Laravel LTS releases, with this version targeted specifically at Laravel 5.5 LTS

Functionality

Installation

Pull in the package via Composer.

"require": {
 "a1comms/gae-support-laravel": "~5.5"
}

Laravel Specific (Not Lumen)

1. Add the following to composer.json:

 "scripts": {
 "post-autoload-dump": [
 "php artisan gae:prepare"
 ]
 },

2. For Laravel, include the service provider within config/app.php:

 'providers' => [
 A1comms\GaeSupportLaravel\GaeSupportServiceProvider::class,
 ];

3. Also, for added functionality, include the optional service providers:

 'providers' => [
 A1comms\GaeSupportLaravel\Auth\AuthServiceProvider::class,
 A1comms\GaeSupportLaravel\View\ViewServiceProvider::class,
 A1comms\GaeSupportLaravel\Queue\QueueServiceProvider::class,
 A1comms\GaeSupportLaravel\Trace\TraceServiceProvider::class,
 ];

And remove the relevant Laravel service providers that these replace:

 'providers' => [
 //Illuminate\View\ViewServiceProvider::class,
 //Illuminate\Queue\QueueServiceProvider::class,
 ];

4. Update bootstrap/app.php to load the overridden application class & initialise logging to Stackdriver:

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/

$app = new A1comms\GaeSupportLaravel\Foundation\Application(
 realpath(__DIR__.'/../')
);

/*
|--------------------------------------------------------------------------
| Setup Early Logging
|--------------------------------------------------------------------------
*/
A1comms\GaeSupportLaravel\Log\Logger::setup($app);

5. Update app/Exceptions/Handler.php to enable proper Exception logging to StackDriver Error Reporting & Logging:

Change the following use statement:

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

To our class, that'll inject the required logging hook:

use A1comms\GaeSupportLaravel\Foundation\Exceptions\Handler as ExceptionHandler;

6. In .env, set the following:

QUEUE_DRIVER=gae
CACHE_DRIVER=array
SESSION_DRIVER=gae

Lumen Specific (Not Laravel)

1. Update bootstrap/app.php to load the overridden application class

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new A1comms\GaeSupportLaravel\Foundation\LumenApplication(
 realpath(__DIR__.'/../')
);

2. Update app/Exceptions/Handler.php to enable proper Exception logging to StackDriver Error Reporting & Logging:

Change the following use statement:

use Laravel\Lumen\Exceptions\Handler as ExceptionHandler;

To our class, that'll inject the required logging hook:

use A1comms\GaeSupportLaravel\Foundation\Exceptions\LumenHandler as ExceptionHandler;