Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Current »



In the following common preparations for the software project and the deployment are described.

Project Preparation

We expect the customer to:


  • use git or any comparable versioning control system for their code development 
  • define a branch the productive code could be cloned from e.g. master or a release branch
  • provide access method for git repository and credentials
    • currently supported and recommended is SSH using a private-public-keypair
    • HTTPS with http_user and http_password
    • HTTP with username and password (not recommended) 

Composer

Composer is a dependency management system.

To give a brief overview, Composer is utilizing run time variables to replace configuration items of your application on run time.

A variety of projects are using Composer to prepare their application during a release process. 

It's a powerful tool with a very large user and development community.

We recommend the usage of Composer over the use of shell-scripts or make.

In case of usage we recommend to:

  • configure your project using composer with shell environment variables, e.g. by using .dist config files (an example is shown below)

  • configure an env-map in composer.json is needed (an example is shown below)

  • specify a list of required symlinks for your project

Requisition

As parameter injection is done by incenteev bundle, it is needed to be included and triggert in composer.json

composer.json

HTML

    "require": {
        ...
        "incenteev/composer-parameter-handler": "~2.0" 
    ...
    "scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
           ...


Further Reading

.dist example 


# This file is a "template" of what your parameters.yml file should look like
# Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production.
# http://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
parameters:
database_host: ~
database_port: 3306
database_name: ~
database_user: ~
database_password: ~
mailer_transport: smtp
mailer_host: ~
mailer_user: ~
mailer_password: ~
mailer_default_dev_address: noreply@teamshirts.de    


composer.json example
    


"extra": {
	"symfony-app-dir": "app",
	"symfony-web-dir": "web",
	"symfony-assets-install": "relative",
	"incenteev-parameters": {
		"file": "app/config/parameters.yml",
		"keep-outdated": true,
		"env-map": {
			"database_host": "SYMFONY__ENV__DATABASE__SERVER",
			"database_name": "SYMFONY__ENV__DATABASE__DATABASE",
			"database_user": "SYMFONY__ENV__DATABASE__USERNAME",
			"database_password": "SYMFONY__ENV__DATABASE__PASSWORD",
			"mailer_host": "SYMFONY__ENV__MAILER__HOST",
			"mailer_user": "SYMFONY__ENV__MAILER__USER",
			"mailer_password": "SYMFONY__ENV__MAILER__PASSWORD"
		}
	}
}

  • No labels