PHPackages                             groton-school/slim-gae-shim - 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. groton-school/slim-gae-shim

ActiveLibrary[Framework](/categories/framework)

groton-school/slim-gae-shim
===========================

Shim for Slim Skelton to run on Google App Engine

2.1.2(6mo ago)0559[1 issues](https://github.com/groton-school/slim-gae-shim/issues)GPL-3.0PHPCI passing

Since Apr 19Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/groton-school/slim-gae-shim)[ Packagist](https://packagist.org/packages/groton-school/slim-gae-shim)[ RSS](/packages/groton-school-slim-gae-shim/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (11)Versions (12)Used By (0)

groton-school/slim-gae-shim
===========================

[](#groton-schoolslim-gae-shim)

Shim for Slim Skeleton to run on Google App Engine

[![Latest Version](https://camo.githubusercontent.com/a94b3059fb5c9c82376f0a754285d1fa740436225892f5b2037dbd5165beb2c3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f67726f746f6e2d7363686f6f6c2f736c696d2d6761652d7368696d2e737667)](https://packagist.org/packages/groton-school/slim-gae-shim)

Install
-------

[](#install)

```
composer require groton-school/slim-gae-shim
```

Use
---

[](#use)

The shim expects a default [slim-skeleton](https://github.com/slimphp/Slim-Skeleton#readme) layout (and configures GAE to reflect this).

1. In your `composer.json` add a `post-update-cmd` update script:

```
{
  "scripts": {
    "post-update-cmd": "GrotonSchool\\Slim\\GAE\\Scripts::installGAEFiles"
  }
}
```

2. Run `composer update`
3. Add `/node_modules/` to your `.gitignore`
4. Optionally, add `*.bak` to your `.gitignore` to suppress backed up prior versions of the GAE config files
5. Inject Google App Engine environment variables into settings:

    a. [Implement `SettingsInterface`](https://github.com/groton-school/slim-skeleton/blob/b03aae3a19f76cfe6e0e6c0150bc7624f0ccb15c/src/Application/Settings/SettingsInterface.php#L9)

    b. [Define the `SettingsInterface` dependency](https://github.com/groton-school/slim-skeleton/blob/b03aae3a19f76cfe6e0e6c0150bc7624f0ccb15c/app/dependencies.php#L14)

    c. [Inject the remaining dependencies](https://github.com/groton-school/slim-skeleton/blob/b03aae3a19f76cfe6e0e6c0150bc7624f0ccb15c/app/dependencies.php#L11)

    d. [Inject the project URL and ID into your settings](https://github.com/groton-school/slim-skeleton/blob/b03aae3a19f76cfe6e0e6c0150bc7624f0ccb15c/app/settings.php#L23-L25)
6. Optionally (but recommendedly), suppress error log messages about Google App Engine start/stop requests by [defining routes for those requests](https://github.com/groton-school/slim-skeleton/blob/b03aae3a19f76cfe6e0e6c0150bc7624f0ccb15c/app/routes.php#L19)
7. Deploy to Google App Engine using the [Node](https://nodejs.org) `deploy` wizard provided.

    a. Configure a [Billing Account](https://console.cloud.google.com/billing) with your Google Cloud account, if not already done.

    b. [Install the `gcloud` CLI](https://cloud.google.com/sdk/docs/install)

    c. Install Node dependencies with the package manager of your choice (e.g. `pnpm install`)

    d. Run the deploy wizard (`pnpm run deploy`) interactively (after the first run, this will set environment variables to allow it to be run non-interactively in the future)

### groton-school/slim-skeleton@dev-gae/app

[](#groton-schoolslim-skeletondev-gaeapp)

[groton-school/slim-skeleton](https://github.com/groton-school/slim-skeleton/tree/gae/app) is the canonical example of how this shim is meant to be used.

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance71

Regular maintenance activity

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~20 days

Total

11

Last Release

190d ago

Major Versions

1.3.1 → 2.0.02025-09-09

### Community

Maintainers

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

---

Top Contributors

[![battis](https://avatars.githubusercontent.com/u/419619?v=4)](https://github.com/battis "battis (65 commits)")

---

Tags

google-app-engineslim-frameworkslim4

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/groton-school-slim-gae-shim/health.svg)

```
[![Health](https://phpackages.com/badges/groton-school-slim-gae-shim/health.svg)](https://phpackages.com/packages/groton-school-slim-gae-shim)
```

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.3k86.3M2.2k](/packages/symfony-symfony)[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)

PHPackages © 2026

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