PHPackages                             shpasser/gae-support-lumen - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. shpasser/gae-support-lumen

ActiveLibrary[Framework](/categories/framework)

shpasser/gae-support-lumen
==========================

Google App Engine Support for Lumen apps.

1.2.3(10y ago)137.5k—0%2[3 issues](https://github.com/shpasser/GaeSupportLumen/issues)MITPHPPHP &gt;=5.4.0

Since Jun 7Pushed 9y ago1 watchersCompare

[ Source](https://github.com/shpasser/GaeSupportLumen)[ Packagist](https://packagist.org/packages/shpasser/gae-support-lumen)[ RSS](/packages/shpasser-gae-support-lumen/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (8)Used By (0)

GaeSupportLumen
===============

[](#gaesupportlumen)

[![Latest Stable Version](https://camo.githubusercontent.com/3c82daabc9028dff08967de65b7849f83d90934035da5285a38932e1d5a223f3/68747470733a2f2f706f7365722e707567782e6f72672f73687061737365722f6761652d737570706f72742d6c756d656e2f762f737461626c65)](https://packagist.org/packages/shpasser/gae-support-lumen) [![Total Downloads](https://camo.githubusercontent.com/b8913efd6527be19eee80e87e8997dd8b482fdb199170c15b3624759a1b762ec/68747470733a2f2f706f7365722e707567782e6f72672f73687061737365722f6761652d737570706f72742d6c756d656e2f646f776e6c6f616473)](https://packagist.org/packages/shpasser/gae-support-lumen) [![Latest Unstable Version](https://camo.githubusercontent.com/6ad158ea4b61027221175733ddcce1ba5e6839fe04d6263c1e67bed36c35775a/68747470733a2f2f706f7365722e707567782e6f72672f73687061737365722f6761652d737570706f72742d6c756d656e2f762f756e737461626c65)](https://packagist.org/packages/shpasser/gae-support-lumen) [![License](https://camo.githubusercontent.com/5dafa2bc71326266a58c2f194b46c06a9ea554f7f44f34631a269274c47671f7/68747470733a2f2f706f7365722e707567782e6f72672f73687061737365722f6761652d737570706f72742d6c756d656e2f6c6963656e7365)](https://packagist.org/packages/shpasser/gae-support-lumen)

Google App Engine(GAE) Support package for Lumen.

Currently supported features:

- Generation of general configuration files,
- Mail service provider,
- Queue service provider,
- Database connection,
- Filesystem.

For Laravel 5 see .

Installation
------------

[](#installation)

Pull in 'shpasser/gae-support-lumen' and 'illuminate/mail' packages via Composer.

```
"require": {
    "shpasser/gae-support-lumen": "~1.0",
    "illuminate/mail": "~5.0"
}
```

Within `bootstrap/app.php`:

- Uncomment the following line in order to use the `Facades`

```
$app->withFacades();
```

- Include the service provider

```
$app->register(Shpasser\GaeSupportLumen\GaeSupportServiceProvider::class);
```

Usage
-----

[](#usage)

Generate the GAE related files / entries.

```
php artisan gae:setup --config --bucket="your-bucket-id" --db-socket="cloud-sql-instance-socket-connection-string" --db-name="cloud-sql-database-name" --db-host="cloud-sql-instance-ipv4-address" your-app-id
```

The default GCS bucket is configured unless a custom bucket id is defined using the `--bucket` option.

When `--db-name` option is defined at least one of `--db-socket` or `--db-host` should be defined also.

### Mail

[](#mail)

The mail driver configuration can be found in `config/mail.php` and `.env.production`, these configuration files are modified / generated by the artisan command. There is no need in any kind of custom configuration. All the outgoing mail messages are sent with sender address of an administrator of the application, i.e. `admin@your-app-id.appspotmail.com`. The `sender`, `to`, `cc`, `bcc`, `replyTo`, `subject`, `body` and `attachment`parts of email message are supported.

### Queues

[](#queues)

The modified queue configuration file `config/queue.php` should contain:

```
return array(

	...

	/*
	|--------------------------------------------------------------------------
	| GAE Queue Connection
	|--------------------------------------------------------------------------
	|
	*/

	'connections' => array(

		'gae' => array(
			'driver'	=> 'gae',
			'queue'		=> 'default',
			'url'		=> '/tasks',
			'encrypt'	=> true,
		),

		...

	),

);
```

The 'default' queue and encryption are used by default. In order to use the queue your `app/Http/routes.php` file should contain the following route:

```
Route::post('tasks', array('as' => 'tasks',
function()
{
	return Queue::marshal();
}));
```

This route will be used by the GAE queue to push the jobs. Please notice that the route and the GAE Queue Connection 'url' parameter point to the same URL. For more information on the matter please see .

### Cache, Session and Log

[](#cache-session-and-log)

Cache, Session and Log components are supported via the use of specific drivers / handlers:

- Cache - using the 'memcached' driver,
- Session - using the 'memcached' driver,
- Log - using 'syslog' handler.

The configuration options for the mentioned drivers / handlers are generated by the artisan command and can be found in `.env.production` configuration file.

### Database

[](#database)

Google Cloud SQL is supported via Laravel's MySql driver. The connection configuration is added by the artisan command to `config/database.php` under `cloudsql`. The connection parameters can be configured using `--db-socket`, `--db-name` and `--db-host` options via the artisan command.

The database related environment variables are set in `.env.production` and `.env.local` files.

The `production` environment is configured to use the socket connection while the `local` configured to connect via the IPv4 address of the Google Cloud SQL instance. Use Google Developers Console in order to obtain the socket connection string and enable the IPv4 address of your database instance.

The migrations are supported while working in `local` environment only.

To use either the `production` or the `local` environment rename the appropriate file to `.env`.

### Filesystem

[](#filesystem)

In order to support Laravel filesystem on GAE the artisan command modifies `config/filesystem.php`to include an additional disk:

```
'gae' => [
    'driver' => 'gae',
    'root'   => storage_path().'/app',
],
```

and adds the following line to `.env.production` file:

```
FILESYSTEM = gae
```

The last but not the least, pull in 'league/flysystem' package via Composer.

```
"require": {
    "league/flysystem": "~1.0"
}
```

### Optimizations

[](#optimizations)

The optimizations allow the application to reduce the use of GCS, which is the only read-write storage available on GAE platform as of now.

In order to optimize view compilation the included `cachefs` filesystem can be used to store compiled views using `memcached` service. `cachefs` does not provide the application with a reliable storage solution, information stored using `memcached` is managed according to `memcached` rules and may be deleted when `memcached` decides to. Since the views can be compiled again without any information loss it is appropriate to store compiled views using `cachefs`.

'cachefs' has the following structure:

```
/
+-- framework
    +-- views
```

'/framework/views' is used to store the compiled views.

Use the following option to enable the feature in `.env.production` file:

```
COMPILED_PATH = cachefs://framework/views
```

Additionally the initialization of GSC bucket can be skipped to boost the performance:

```
env_variables:
        GAE_SKIP_GCS_INIT: true
```

the storage path will be set to `/storage` directory of the GCS bucket and storage directory structure creation will be skipped.

If not used the filesystem initialization can be removed to minimize GCS usage. In order to do so, remove the following line from `.env.production` file:

```
FILESYSTEM = gae
```

Deploy
------

[](#deploy)

Backup the existing `.env` file if needed and rename the generated `.env.production` to `.env`before deploying your app.

Download and install GAE SDK for PHP and deploy your app.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 93.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~69 days

Recently: every ~100 days

Total

7

Last Release

3582d ago

Major Versions

1.2.3 → 5.1.x-dev2016-07-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/edd94b281956b3cecf4c2773003ebe8544b6f30179aa6869fb8d37bd192b6b0a?d=identicon)[shpasser](/maintainers/shpasser)

---

Top Contributors

[![shpasser](https://avatars.githubusercontent.com/u/4275204?v=4)](https://github.com/shpasser "shpasser (14 commits)")[![tinpont](https://avatars.githubusercontent.com/u/3940642?v=4)](https://github.com/tinpont "tinpont (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/shpasser-gae-support-lumen/health.svg)

```
[![Health](https://phpackages.com/badges/shpasser-gae-support-lumen/health.svg)](https://phpackages.com/packages/shpasser-gae-support-lumen)
```

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
