# Usage

## Preparation

- [Install composer](https://getcomposer.org): `sudo wget https://getcomposer.org/composer.phar --output-document=/usr/local/bin/composer && sudo chmod +x /usr/local/bin/composer`
- Disable XDebug for CLI - optional: `sudo phpdismod -s cli xdebug`
- [Install Prestissimo](https://github.com/hirak/prestissimo) - optional: `sudo composer global require "hirak/prestissimo:^0.3"`

## Create new project for local development

```bash
composer create-project lakedrops/d9-project [DIRNAME] --no-interaction
cd [DIRNAME]
```

This will build the full structure and create a git repository which you can then use during the full live-cycle of that project.

To install a new site with the included default configuration, use `drush site-install --existing-config` and you get a jump-start from that.

## Deploy project to upstream stages

For deployment, both initially and for later updates, follow this:

```
mkdir /PATH/TO/ROOT
cd /PATH/TO/ROOT
git clone YOUR-GIT-REPOSITORY .
composer install
```

## Adding new and updating existing components

Edit the composer.json file accodring to your requirements and then run `composer update`.

## Adding JS packages

### CKEditor Codesnippet

```bash
composer config repositories.codesnippet '{"type": "package","package": {"name": "ckeditorplugin/codesnippet","type": "drupal-library","version": "master","dist": {"type": "zip","url": "https://download.ckeditor.com/codesnippet/releases/codesnippet_4.7.3.zip","reference": "master"}}}'
composer require ckeditorplugin/codesnippet:master drupal/codesnippet
```

### Chosen

```bash
composer config repositories.codesnippet '{"type": "package","package": {"name": "harvesthq/chosen","version": "1.8.2","type": "drupal-library","dist": {"url": "https://github.com/harvesthq/chosen/releases/download/v1.8.2/chosen_v1.8.2.zip","type": "zip"}}}'
composer require harvesthq/chosen
```

# Links

[Using Composer to install Drupal packages through Drupal.org](https://www.drupal.org/node/2718229)