Piste : • foreword • utiliser-composer
Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| fr:tutoriels:utiliser-composer [2015/03/05 11:40] – laurent | fr:tutoriels:utiliser-composer [2015/03/09 16:04] (Version actuelle) – [Développer une application et des modules séparément] laurent | ||
|---|---|---|---|
| Ligne 12: | Ligne 12: | ||
| ===== Créer un nouveau projet ===== | ===== Créer un nouveau projet ===== | ||
| - | Une application développée avec Composer ne comportes | + | Une application développée avec Composer ne comporte |
| - | Ainsi, une application utilisant le framework Jelix 1.7+ avec Composer, ne devrait pas inclure Jelix dans son code source, et indiquer plutôt le paquet Jelix dans le fichier composer.json de l' | + | Ainsi, une application utilisant le framework Jelix 1.7+ avec Composer, ne devrait pas inclure Jelix dans son code source, et indiquer plutôt le paquet Jelix dans le fichier composer.json de l' |
| - | Pour créer un nouveau projet, deux choix : | + | Pour créer un nouveau projet, deux choix. |
| ==== Utilisation du paquet jelix-skeleton-app ==== | ==== Utilisation du paquet jelix-skeleton-app ==== | ||
| - | La manière la plus rapide est d' | + | La manière la plus rapide |
| - | Pour ce faire, si vous voulez créer une application " | + | Pour ce faire, si vous voulez créer une application " |
| ``` | ``` | ||
| Ligne 28: | Ligne 28: | ||
| ``` | ``` | ||
| - | Quelques fichiers ensuite à copier avant d' | + | Composer vous demandera si vous voulez garder le repertoire @@F@.git@@. Répondez non. |
| + | |||
| + | Quelques fichiers ensuite à copier avant d' | ||
| <code bash> | <code bash> | ||
| Ligne 49: | Ligne 51: | ||
| ==== Utilisation de la commande createapp ==== | ==== Utilisation de la commande createapp ==== | ||
| - | Depuis ses premières version, la commande createapp de Jelix permet de créer un squelette d' | + | L' |
| Dans ce cas de figure, il suffira alors : | Dans ce cas de figure, il suffira alors : | ||
| Ligne 82: | Ligne 84: | ||
| <code bash> | <code bash> | ||
| php vendor/ | php vendor/ | ||
| + | </ | ||
| + | |||
| + | Puisque l'on utilise Composer, il faut ensuite modifier le fichier application.init.php pour charger @@F@../ | ||
| + | |||
| + | <code php> | ||
| + | // require(__DIR__.'/ | ||
| + | require(__DIR__.'/ | ||
| </ | </ | ||
| Ligne 91: | Ligne 100: | ||
| Et votre application est prête (ici sur http:// | Et votre application est prête (ici sur http:// | ||
| + | |||
| + | ===== Utiliser le paquet Jelix 1.7 dans une appli Jelix existante ===== | ||
| + | |||
| + | Si votre application n'a pas de fichier Composer.json, | ||
| + | |||
| + | Le composer JSON doit alors ressembler à ceci : | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | La version à indiquer est " | ||
| + | |||
| + | Faire ensuite un @@composer install@@ et Jelix 1.7 sera installé dans @@F@vendor/ | ||
| + | |||
| + | Vous pouvez ensuite supprimer le répertoire @@F@lib@@ de jelix 1.6, et changer le require dans le fichier @@F@application.init.php@@ pour qu'il charge le fichier @@F@autoload.php@ de composer plutôt que le @@F@init.php@ de Jelix directement. | ||
| + | |||
| + | <code php> | ||
| + | // require(__DIR__.'/ | ||
| + | require(__DIR__.'/ | ||
| + | </ | ||
| + | |||
| + | Et il faut ensuite suivre bien sûr les instructions de migration de Jelix 1.6 vers Jelix 1.7. Voir le manuel de Jelix 1.7. | ||
| ===== Installer des paquets tiers ===== | ===== Installer des paquets tiers ===== | ||
| + | Il peut être nécessaire d' | ||
| - | ===== Créer | + | Si le paquet en question est un module |
| + | <code ini> | ||
| + | |||
| + | modulePath="< | ||
| + | |||
| + | [modules] | ||
| + | foo.access=2 | ||
| + | </ | ||
| + | |||
| + | Sans oublier ensuite de relancer l' | ||
| + | |||
| + | <code bash> | ||
| + | php install/ | ||
| + | </ | ||
| ===== Développer une application et des modules séparément ===== | ===== Développer une application et des modules séparément ===== | ||
| + | Il arrive que l'on développe une application qui utilise des modules externes (utilisés par d' | ||
| + | |||
| + | On aurait donc une application dans un dépôt git, et les autres modules dans d' | ||
| + | |||
| + | Cependant, installer ces modules avec Composer impose que l'on commit les modifications dans leurs dépôts respectifs. Cela veut dire qu'il va certainement falloir commiter à de nombreuses reprises lors du debuggage et la mise au point. De quoi " | ||
| + | |||
| + | On peut bien sûr limiter ces commits en écrivant des tests unitaires dans les dépôts des modules, mais cela n'est pas toujours suffisant : on ne peut pas tester l' | ||
| + | |||
| + | La solution est donc la suivante. | ||
| + | * Dans le composer JSON, vous indiquez non pas une version stable du paquet d'un module, mais sa branche de développement (" | ||
| + | * Vous pouvez alors faire des modifications dans les sources du module (dans vendor/), les tester avec votre application, | ||
| + | * Dans le dépôt du module (dans vendor/), vous remarquerez que deux " | ||
| + | * **Attention** : ne manipulez pas Composer tant que vous n'avez rien commité et poussé sur les dépôts d' | ||
| + | * Enfin, une fois que le module est stable, vous mettrez un tag de version (ex: v1.0) dans le dépôt du module. | ||
| + | Une fois que votre module et votre application sont " | ||

