Symfony Starter Project on Google App Engine
Switch branches/tags
Nothing to show
Clone or download
Latest commit e0e5b34 Jun 13, 2017

README.md

Symfony for Google App Engine

This repository contains a Symfony app for Google App Engine, based off the Symfony Standard Edition.

See How to Run Symfony Hello World on App Engine Standard Environment for the full tutorial.

Installation

Install this via composer. Follow the installation instructions if you do not already have composer installed.

Once composer is installed, execute the following command to create this project:

composer create-project google/appengine-symfony-starter-project

Set Up

To run the starter app, be sure to authorize gcloud for your project.

gcloud auth login

Run Locally

composer run-script server --timeout=0

Now browse to http://localhost:8080 in your browser to view your running application. This builds the cache for the "dev" environment and runs the dev_appserver.py script, which will be available if you've installed the Google App Engine Launcher. The command for this is defined in scripts/deploy.php.

Deployment

Deploy to your App Engine instance by running the following command:

composer run-script deploy --timeout=0

This builds the cache for the "prod" environment and runs gcloud app deploy, which will be available if you've installed the Google Cloud SDK. The command for this is defined in scripts/deploy.php.

See also the Symfony Hello World tutorial

Using Twig

It should be noted this example application uses a subclass of Twig_Environment, defined in src/Twig/Environment.php and configured in app/config/services.yml. The reason for this subclass is to customize the getOptionsHash method. Without this, the cache cannot be warmed up outside of the PHP version being used in App Engine.

Troubleshooting

  1. If Composer fails to download the dependencies, make sure that your local PHP installation satisfies Composer's system requirements. Specifically, cURL support is required.

  2. If you see errors about missing the default Cloud Storage bucket, follow the cloud integration instructions to create a default bucket for your project.

Contributing

Have a patch that will benefit this project? Awesome! Follow these steps to have it accepted.

  1. Please sign our Contributor License Agreement.
  2. Fork this Git repository and make your changes.
  3. Create a Pull Request
  4. Incorporate review feedback to your changes.
  5. Accepted!

License

All files in this repository are under the MIT License unless noted otherwise.