Mettre sous gestionnaire de version
Système de gestion de version à la mode.
Développé à l'origine par Linus Torvalds.
Démocratisé par Github.
Création d'un dépo : git init
** Code **
Création d'une version :
git commit
** Code **
Création d'une nouvelle version :
git commit
...
Pour le travail collaboratif : création d'une copie de notre dépôt.
git remote add origin chemin/vers/remote
récupération d'un dépot distant
git clone chemin/vers/remote
Remotes possible : github, gitlab, dossier local / réseau...
Fichier à placer à la racine du dépot
Contenant les dossiers / fichiers à ne pas versionner (images, fichiers de config, css...)
db/*.sql
web/uploads
web/sites/default/settings.php
GNU/Linux & MacOS
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer require dependance
composer require silex/silex
Va installer silex + ses dépendances
Fichier contenant les dépendances de notre projet PHP
{
"require": {
"silex/silex": "^2.2"
}
}
fichier contenant la version exacte de nos dépendances (et de leurs dépendances)
Un dépot (repository) : packagist (https://packagist.org)
composer update
modifiera le fichier composer.lock mais pas le composer.jsonNote :
"require": {
"silex/silex" "1.3.6"
}
"require": {
// >, <, >=, <= | specify upper / lower bounds
"vendor/package": ">=1.3.2", // anything above or equal to 1.3.2
"vendor/package": "<1.3.2", // anything below 1.3.2
// * | wildcard
"vendor/package": "1.3.*", // >=1.3.0 <1.4.0
// ~ | allows last digit specified to go up
"vendor/package": "~1.3.2", // >=1.3.2 <1.4.0
"vendor/package": "~1.3", // >=1.3.0 <2.0.0
// ^ | doesn't allow breaking changes (major version fixed - following semver)
"vendor/package": "^1.3.2", // >=1.3.2 <2.0.0
"vendor/package": "^0.3.2", // >=0.3.2 <0.4.0 // except if major version is 0
}
Drupal.org possède maintenant ses propres dépôts composer :
Drupal core + modules tiers
https://github.com/drupal-composer/drupal-project
Installation de la dernière version stable de Drupal + Drush + Drupal console
Création et pré-configuration des dossiers (settings, files...)
Création d'un gitignore spécifique pour drupal
Drupal 8
composer create-project drupal-composer/drupal-project:8.x-dev monsite.com --stability dev --no-interaction
Drupal 7
composer create-project drupal-composer/drupal-project:7.x-dev monsite-d7.com --stability dev --no-interaction
composer require drupal/module
exemple : Devel
composer require drupal/devel
Utiliser le nom machine du module (comme avec drush) avec le vendor « drupal »
Ajouter l'adresse du dépôt dans la section « repositories »
composer config repositories.kgaut-tools vcs https://github.com/kgaut/kgaut_tools
Dans le composer.json :
"repositories": {
"0": {
"type": "composer",
"url": "https://packages.drupal.org/8"
},
"kgaut-tools": {
"type": "vcs",
"url": "https://github.com/kgaut/kgaut_tools"
}
},
composer require kgaut/kgaut_tools
Note : le module devra posséder aussi son propre composer.json
{
"name": "kgaut/kgaut_tools",
"type": "drupal-module",
"description": "Tools and services for drupal 8",
"homepage": "https://github.com/kgaut/kgaut_tools",
"minimum-stability": "dev",
"require": { }
}
Dans la section extra du composer.json :
"patches": {
"drupal/core": {
"Entity display base hidden weight": "patchs/entity-displaybase-hidden-weight.patch"
},
"drupal/simple_oauth" : {
"Allow emails to be used for auth": "https://www.drupal.org/files/issues/simple_oauth-allow-email-authentification-2908437-2.patch"
}
}
Apprendre Git par l'exemple : https://try.github.io/
Problèmes et solutions de drupal + composer : https://www.jeffgeerling.com/blog/2017/composer-and-drupal-are-still-st…
Cette présentation : https://slides.kgaut.net
Quelques-unes de mes bafouilles sur composer : https://kgaut.net/blog/tags/composer.html
... et sur git : https://kgaut.net/blog/tags/git.html
Twitter : @kgaut
Mail : contact@kgaut.net