diff --git a/CUSTOMIZATION.md b/CUSTOMIZATION.md index 09a3a77a304e80857e71de23d27c03258aec0081..478f1d6157d284d725cad8108b11845418e13d5d 100644 --- a/CUSTOMIZATION.md +++ b/CUSTOMIZATION.md @@ -1,4 +1,3 @@ - ## Remplacer `README.md` Y décrire comment utiliser le package... @@ -9,12 +8,60 @@ Et adapter le contenu des fichiers `LICENSE`, `.docheader`. ## Editer `composer.json` -* Editer les métadonnées : `name`, `description`, `type`, `license`. -* Supprimer/remplacer les scripts `post-install-cmd`, `post-update-cmd` et `customize-reminder`. -* Corriger les namespaces des sections `autoload` et `autoload-dev`. +#### Editer les métadonnées + +Ce sont les champs `name`, `description`, `type` et `license`. + +#### Supprimer les scripts du squelette + +Ce sont les scripts `post-install-cmd`, `post-update-cmd` et `customize-reminder`. + +#### Corriger les namespaces + +Ils sont dans les sections `autoload` et `autoload-dev`. Ce sont par défaut `Irstea\MyProject` et `Irstea\MyProject\Tests`, ce qui a peu de chance de correspondre au nouveau projet. + +#### Fixer les contraintes de version -## Supprimer les fichiers modèles +Elle sont dans les sections `require` et `require-dev`. Il faut remplacer `"*"` par des contraintes de version de type `"^x.y"`. + +**Si vous ne le faites pas, vous risquez une mauvaise surprise lors d'un `composer update`.** + +_Nota bene_: `roave/security-advisories` doit toujours être sur `dev-master`. + +La commande `composer show --direct` permet de lister les versions installées. + +##### Exemple ```shell -rm src/*.php tests/*.php CUSTOMIZATION.md +$ composer show --direct +beberlei/assert v3.2.0 Thin assertion library for input validation in business models. +irstea/php-cs-fixer-config 1.0.1 Jeux de règles pour php-cs-fixer. +irstea/phpmd-config 1.0.0 Jeux de règles pour PHP Mess Detector. +irstea/phpstan-config 1.0.3 Configuration par défaut pour phpstan/phpstan. +jakub-onderka/php-parallel-lint v1.0.0 This tool check syntax of PHP files about 20x faster than serial check. +maglnet/composer-require-checker 2.0.0 CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package +phploc/phploc 5.0.0 A tool for quickly measuring the size of a PHP project. +phpunit/phpunit 8.1.2 The PHP Unit Testing framework. +roave/security-advisories dev-master a011222 Prevents installation of composer packages with known security vulnerabilities: no API, simply require it +sebastian/phpcpd 4.1.0 Copy/Paste Detector (CPD) for PHP code. +sensiolabs/security-checker v5.0.3 A security checker for your composer.lock +``` + +```json +{ + "require": { + "beberlei/assert": "^3.2" + }, + "require-dev": { + "irstea/php-cs-fixer-config": "^1.0", + "irstea/phpmd-config": "^1.0", + "irstea/phpstan-config": "^1.0", + "jakub-onderka/php-parallel-lint": "^1.0", + "maglnet/composer-require-checker": "^2.0", + "phploc/phploc": "^5.0", + "phpunit/phpunit": "^8.1", + "sebastian/phpcpd": "^4.1", + "sensiolabs/security-checker": "^6.0" + } +} ``` diff --git a/README.md b/README.md index cf4ea08b5c64fa6ae7980d5dba9fdc486f81b715..0dcd72b2ef7815cd41ceb12fb79562c95bf12584 100644 --- a/README.md +++ b/README.md @@ -6,43 +6,43 @@ Il peut être utilisé directement avec composer : composer create-project irstea/php-skeleton my-package-directory -Une fois le projet crée, il y a encore quelques étapes *indispensables$ à suivre pour terminer l'initialisation, cf. [CUSTOMIZATION.md](CUSTOMIZATION.md). +Une fois le projet crée, il y a encore quelques étapes \*indispensables\$ à suivre pour terminer l'initialisation, cf. [CUSTOMIZATION.md](CUSTOMIZATION.md). ## Ce qu'il contient -* un squelette d'organisation des sources ([`src/`](src) et [`tests/`](tests)), +- un squelette d'organisation des sources ([`src/`](src) et [`tests/`](tests)), -* un [`composer.json`](composer.json) qui inclut les outils suivants: +- un [`composer.json`](composer.json) qui inclut les outils suivants: - * composer-require-checker - * php-cs-fixer (via irstea/php-cs-fixer-config) - * php-parallel-lint - * phpcpd - * phploc - * phpmd (via irstea/phpmd-config) - * phpstan (via irstea/phpstan-config) - * phpunit - * security-checker + - composer-require-checker + - php-cs-fixer (via irstea/php-cs-fixer-config) + - php-parallel-lint + - phpcpd + - phploc + - phpmd (via irstea/phpmd-config) + - phpstan (via irstea/phpstan-config) + - phpunit + - security-checker -* une préconfiguration pour les outils suivants: +- une préconfiguration pour les outils suivants: - * [editorconfig](.editorconfg) - * [php-cs-fixer](.php_cs.dist) - * [phpmd](phpmd-ruleset.xml) - * [phpstan](phpstan.neon) - * [phpunit](phpunit.xml) + - [editorconfig](.editorconfg) + - [php-cs-fixer](.php_cs.dist) + - [phpmd](phpmd-ruleset.xml) + - [phpstan](phpstan.neon) + - [phpunit](phpunit.xml) -* un [`.gitlab-ci.yml`](.gitlab-ci.yml) qui utilise les outils précédemment cité. +- un [`.gitlab-ci.yml`](.gitlab-ci.yml) qui utilise les outils précédemment cité. ## Ce qu'il ne contient pas -* Un squelette d'application Symfony : +- Un squelette d'application Symfony : - * Tous les packages ne sont pas des applications Symfony. - * Les nouvelles versions de Symfony sortent trop rapidement pour espérer suivre. - * Pour les nouveaux projets Symfony, il faut utiliser `symfony/flex` de toute façon. + - Tous les packages ne sont pas des applications Symfony. + - Les nouvelles versions de Symfony sortent trop rapidement pour espérer suivre. + - Pour les nouveaux projets Symfony, il faut utiliser `symfony/flex` de toute façon. -* Un squelette pour docker-composer : +- Un squelette pour docker-composer : - * Tous les packages n'en ont pas besoin. - * C'est très dépendant des applications. + - Tous les packages n'en ont pas besoin. + - C'est très dépendant des applications.