Je pense qu'il faudrait une section dans le forum pour poser les questions sur le tuto, car sauf erreur, si on écrit en dessous du tuto il n'y a pas d'alerte pour les réponses.

Voilà j'en ai une qui me vient a l'idée et qui m'est arrivé
J'avais téléchargé cakephp et lancée composer install
Ensuite j'ai téléchargé le plugin Forum de Miles qui lui est aussi livré avec un composer.json

J'ai déplacé dans le repertoire plugin, est-ce que je dois aller dans se repertoire plugin pour faire un composer install ?
Ou dois je merger tous les composer install pour n'en faire qu'un a la racine ?

11 réponses


Vallyan
Réponse acceptée

As-tu utilisé composer dans ton projet, déja ?
Si oui, as-tu le dossier Vendor, a la racine ?
Si oui:

Modifie le composer.json qui est a la racine de ton projet:

-> Tu dois déja avoir un bloc require. Dans ce cas tu ajoutes simplement la ligne

"mjohnson/forum": "4.*"

dans ce require, en faisant attention a tes virgules (c'est du json :/ ...)
-> Le truc suivant me parait inutile, il semble qu'il y soit déja dans le composer.json de cake.

"config": {
        "vendor-dir": "Vendor"
    },

. Ne le rajoute donc pas s'il y est

Fais ton php composer --update

Et voila !

Configure le reste en suivant son tuto, sans te soucier de rien. Tout sera mis au bon endroit

tu dois garder un seul composer.json (c'est facile, c'est du json ...), a la racine de ton projet. LA plupart du temps c'est aussi simple que d'ajouter une ou deux lignes a ton fichier json.
Composer balance toutes les lib dans le dossier vendor et l'autoload s'occupe de tout.

sylvain
Auteur

Est ce qu'il saura ou placer tout les fichiers ? dans quel repertoire de plugin ?
Si je fais un simple copier coller sans modifier le chemin, ca risque de planter je pense

Si ton plugin forum a besoin de dépendance gérées avec composer (et donc je suppose que c'est le cas), ces dépendances seront toujours placées dans /vendor.

  • Ajoute ton plugin comme il faut (je suppose que le plugin ne s'installe pas avec composer, lui ... pour ca tu n'as qu'a suivre les recommandations de cake)
  • Ajoute les lignes necessaires a ton composer.json
  • En console tu fais un php composer --update
  • Tu peux vérifier la présence de nouveaux vendors dans /vendor

Ca devrait rouler. Des que le plugin a besoin d'un classe dépendante, l'autoloader se charge de faire le nécessaire.

ATTENDS:

JE viens de lire la page de ton truc.
En fait c'est encore plus simple: tu n'as que composer a utiliser.
Pas de copier coller de tes fichier.

La page d'explications pour installer son truc est limpide ... pourquoi tu poses des questions ? :p

sylvain
Auteur

Mais parce qu'il y a plusieurs composer.json

je ne sais pas si j'installe le plugin et je vais dans le répertoire plugin et je lance composer installe

Ou j'installe le plugin et j'édite le composer.json dans le répertoire plugin et je copie les lignes nécessaires pour le coller dans le composer.json de la racine de cakephp.

ce qui me trouble c'est les chemin relative dans l'installation, il m'a semble qu'une fois je n'avais pas fait attention, il a installé des trucs a la racine de cakephp

sylvain
Auteur

Merci pour ces infos

Tu t'en es sorti ?

sylvain
Auteur

Pas encore, je le ferais quand j'aurais 2 jours devant moi. Je ne comprends pas très bien pourquoi il y a tellement de dépendance avec le plugin de miles, et je me pose la question de savoir si ça ne va rien casser si je fais ça.

Car j'ai eu un mauvais souvenir des dépendances en compilation sous debian de librairies qui ne correspondait pas et au final le système était instable. Et je crains que cela se reproduise ici.

Mais si j'ai bien compris, composer ne fait que télécharger les dépendances, il ne va pas modifier les fichiers ?

Absolument.