https://github.com/kgaut/drupal-site-scaffolder
A Drupal 7/8 websites scaffolder built on composer
https://github.com/kgaut/drupal-site-scaffolder
Last synced: about 1 year ago
JSON representation
A Drupal 7/8 websites scaffolder built on composer
- Host: GitHub
- URL: https://github.com/kgaut/drupal-site-scaffolder
- Owner: kgaut
- License: gpl-2.0
- Created: 2015-12-08T14:18:14.000Z (over 10 years ago)
- Default Branch: 7.x
- Last Pushed: 2016-01-05T13:56:41.000Z (over 10 years ago)
- Last Synced: 2025-02-09T22:30:49.550Z (over 1 year ago)
- Language: Shell
- Homepage:
- Size: 24.4 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-drupal - A Drupal 7/8 websites scaffolder built on composer
README
# Drupal Site Scaffolder
## Main goal
Easily start a new Drupal 7 / 8 project with main modules built over composer
## Dependencies
This *scaffolder* require **composer**, a PHP dependencies manager.
##What it does ?
It will download the last 7.x or 8.x release of Drupal, and a list of useful modules.
It copy the **default.settings.php** to **settings.php**, create the **files**
and **tmp** folder (within **sites/default**).
The **.gitignore** file is here to prevent you to put under versioning core and
modules. (See [.gitignore section](#gitignore) for more information.)
At the end, a script ask you if you want to create a MySQL database.
##Get started
Open a terminal and move to the folder you want to use, it should be empty, then
launch the command :
**For Drupal 7 :**
```composer create-project kgaut/drupal-site-scaffolder ./ "7.*"```
**For Drupal 8 :**
```composer create-project kgaut/drupal-site-scaffolder ./ "8.*"```
The script is **loooong** and it does not output much, if you wish, you can use
```-vvv``` parameter in order to set it more verbose.
**For Drupal 7 :**
```composer create-project kgaut/drupal-site-scaffolder ./ "7.*" -vvv```
**For Drupal 8 :**
```composer create-project kgaut/drupal-site-scaffolder ./ "8.*" -vvv```
If you'd rather install it in a custom folder you can specify it with :
**For Drupal 7 :**
```composer create-project kgaut/drupal-site-scaffolder my_custom_folder "7.*"```
**For Drupal 8 :**
```composer create-project kgaut/drupal-site-scaffolder my_custom_folder "8.*"```
##.gitignore
As said previously, the **.gitignore** file is here to prevent you to put under
versioning core and modules.
The modules within **sites/\*/modules/contrib/** are excluded, your customs
modules has to be under **sites/\*/modules/** in order to not being ignored.
(ie : **sites/all/modules/my_module** will be versioned but not
**sites/all/modules/contrib/views**)
Same thing for themes, within **sites/\*/themes/contrib/** are excluded, those
under **sites/\*/theme/** are not.
(ie : **sites/all/themes/my_theme** will be versioned but not
**sites/all/themes/contrib/zen**)
##Add contributed modules and themes
Composer use the **[Drupal Packagist](https://packagist.drupal-composer.org/)**
repository in order to download / update modules.
If you want to add a module or a theme, let's say
**[zen base theme](https://packagist.drupal-composer.org/packages/drupal/zen)**
for example type the following command :
```
composer require drupal/zen:"7.*"
```
##Update drupal core and contrib modules
In order to update core and modules, you should launch the command
```
composer update
```
It will update the composer.lock file with the new version for updated
dependencies.
If you prefer to check the available updates you can do a __dry run__ :
```
composer update --dry-run
```
this will only simulate the changes.
Also you can update only one dependency by specifying it :
```
composer update drupal/zen
```
##Use patchs for core and modules
If you need to patch core or a module, thanks to **cweagans/composer-patches**,
you can !
Within the **patches** section add and adapt the following example :
```
"drupal/twitter": {
"Allow to add tracking arguments to URL": "https://www.drupal.org/files/issues/twitter-post-allow-to-add-tracking-to-url-2582287-6.patch"
}
```
The key specify the module to patch (here : **twitter**), then the array contains
a list of patches, the key is a description, the value is the path to the patch,
it could be an url, or a relative path to a file on your system.
Complete example :
```
"patches": {
"drupal/twitter": {
"Allow to add tracking arguments to URL": "https://www.drupal.org/files/issues/twitter-post-allow-to-add-tracking-to-url-2582287-6.patch"
}
}
```
##Links
- [The project on Packagist](https://packagist.org/packages/kgaut/drupal-site-scaffolder)
##Thanks to
Based on the work of [webflo](https://github.com/webflo/) on [drupal-project](https://github.com/drupal-composer/drupal-project).