This project template should provide a kickstart for managing your site dependencies with Composer.
If you want to know how to use it as replacement for Drush Make visit the Documentation on drupal.org.
First you need to install composer.
Note: The instructions below refer to the global composer installation. You might need to replace
composerwithphp composer.phar(or similar) for your setup.
After that you can create the project:
composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction With composer require ... you can download new dependencies to your installation.
cd some-dir composer require drupal/devel:8.* When installing the given composer.json some tasks are taken care of:
- Drupal will be installed in the 
web-directory. - Autoloader is implemented to use the generated composer autoloader in 
vendor/autoload.php, instead of the one provided by Drupal (web/vendor/autoload.php). - Modules (packages of type 
drupal-module) will be placed inweb/modules/contrib/ - Theme (packages of type 
drupal-theme) will be placed inweb/themes/contrib/ - Profiles (packages of type 
drupal-profile) will be placed inweb/profiles/contrib/ - Creates default writable versions of 
settings.phpandservices.yml. - Creates 
sites/default/files-directory. - Latest version of drush is installed locally for use at 
vendor/bin/drush. - Latest version of DrupalConsole is installed locally for use at 
vendor/bin/console. 
Updating Drupal core is a two-step process.
- Update the version number of 
drupal/coreincomposer.json. - Run 
composer update drupal/core. - Run 
scripts/drupal/update-scaffoldto update files in thewebdirectory. This will updatewebwith whatever the latest Drupal 8 release is. Review the files for any changes and restore any customizations to.htaccessorROBOTS.txt. - Commit everything all together in a single commit, so 
webwill remain in sync with thecorewhen checking out branches or runninggit bisect. 
With using the "Composer Generate" drush extension you can now generate a basic composer.json file from an existing project. Note that the generated composer.json might differ from this project's file.
Composer recommends no. They provide argumentation against but also workrounds if a project decides to do it anyway.