(Archived) Project Preparation and Composer Deployment for the Cloud
You have tried to access an archived page. Please go to the new https://root360.atlassian.net/wiki/spaces/KB to find more documents.
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
incomposer.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"
}
}
}
root360 Knowledge Base - This portal is hosted by Atlassian (atlassian.com | Privacy Policy)