Organisation des dossiers des dependances it.rocks
-
Un projet it.rocks est le plus souvent l’assemblage :
- d’un projet final
- de projets réutilisables dont il utilise tout ou partie des composants, incluant le framework lui-même.
Projet final
Le projet final a son dépôt git à la racine de votre projet. Il comporte :
- Un fichier de configuration des dépendances composer.json du projet final. Par exemple pour ce wiki ce fichier contient :
{ "authors": [{ "email": "baptiste dot pillot at bappli dot com", "name": "Baptiste Pillot" }], "description": "https://itrocks.org/wiki", "extra": { "installer-paths": { "{$vendor}/{$name}/": ["type:itrocks"] }, "installer-types": ["itrocks"] }, "license": "MIT", "minimum-stability": "dev", "name": "itrocks/itrocks-wiki", "prefer-stable": true, "repositories": [{ "type": "composer", "url": "https://packages.bappli.com" }], "require": { "itrocks/wiki": "dev-master" }, "type": "itrocks-final" }
- Si votre projet final ne nécessite aucun code source ou configuration spécifique on a un fichier wiki.php, qui porte le même nom que le script de redirection et indique le chemin de la configuration à appliquer. Par exemple ici :
<?php require __DIR__ . '/itrocks/wiki/config.php';
- Si votre projet nécessite du code spécifique non réutilisable, on aura un sous-dossier author/project contenant au minimum :
- la classe d’application Author\Project\Application,
- le fichier de configuration, si besoin d’une configuration spécifique : author/project/config.php.
Projet réutilisable
Le projet réutilisable a son dépôt git sous le dossier author/project correspondant. Il comporte donc :
- un fichier de configuration des dépendances composer.json du projet réutilisable. Par exemple le projet itrocks/wiki utilisé par ce wiki : https://github.com/itrocks/wiki/blob/master/composer.json,
- la classe Author\Project\Application, par exemple pour le wiki https://github.com/itrocks/wiki/blob/master/Application.php,
- si besoin, le fichier de configuration config.php, par exemple pour le wiki https://github.com/itrocks/wiki/blob/master/config.php
Gestion des dépendances
Les dépendances de projets it.rocks sont gérés par Composer, via le fichier composer.json de votre projet final et des projets réutilisables utilisés.
Quelques particularités notables quand à l’utilisation de Composer sont à noter, ces dépendances étant chargées dans la racine de votre projet et non pas sous vendor cela nécessite une configuration particulière :
- Côté projet réutilisable, il faut préciser le type de package
"type": "itrocks"
, c’est la seule particularité. C’est ce qui permettra au gestionnaire de dépendances de savoir qu’il faut traiter ce package comme un projet it.rocks et pas comme une dépendance externe (vendor).
- Côté projet final, un petit peu plus de mentions sont à apporter, comme dans l’exemple plus haut dans cet article, dont on rappelle ici la section qui permet le chargement des packages de type “itrocks” dans la racine de votre projet et pas dans vendor :
"extra": { "installer-paths": { "{$vendor}/{$name}/": ["type:itrocks"] }, "installer-types": ["itrocks"] }, "minimum-stability": "dev", "prefer-stable": true, "type": "itrocks-final"
Ces réglages permettent notamment de configurer les plugins composer/installers et oomphinc/composer-installers-extender de Composer qui permettent de personnaliser pour certains types de packages le dossier de chargement. Ces plugins sont chargés comme dépendance de it.rocks, vous trouverez ces dépendances dans le fichier itrocks/framework/composer.json.
Voir aussi
Pour en savoir plus sur l’organisation des projets, voyez Héritage multiple de projets.