Piste : • 1.6.x • 1.1 • 1.4.x • accueil • 1.2rc1 • utiliser-composer • simple-jforms-example • 1.3 • 1.4 • 1.7.x
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 " | ||