Installation Packagist: Comment gérer les chemins ? Ah, le Patinage...

"Bonjour les gens !" ;-)

Quand on voit notre sympathique Candeloro à l'oeuvre, son aisance et son sourire béant nous laisse croire que c'est hyper facile, ce qu'il fait...
... Mais quand on enfile les patins à glace... Plus dur !!! Nettement plus dur !!! Perso, ct 4-5 jours à marcher comme un ch'ti vieux... Et ça date de 3-4 décennies, mais la douleur passée m'aide à m'en souvenir !!! Lol !

Et c'est quasi ce que j'ai observé en suivant certains tutos de G.A.... !

En effet, on suit, on fait des pauses, on imite, on revient en arrière, on singe parfois, et, à un moment, satisfait que ça fonctionne sur le moment, bah, content même, on poursuit... 4-5...10 chapitres, et parfois jusqu'au bout du tuto...

Mais, si l'envie vient ensuite de mettre en pratique les trucs qu'on a tout juste appris, on voit parfois que tout n'était pas vraiment saisi aussi bien qu'on le pensait sur l'instant...

Donc, suite à l'étude du tuto PHP (Pas le tout dernier[J'y reviendrai...], mais celui d'il y a 3 ans), j'ai conclu que la seule parade, c'est de pratiquer, de voire de bons exemples, etc... Et régulièrement, quand on suit un tuto de blog par exemple, on a bien souvent envie de "s'isoler" et de coder un peu à part du projet principal (Création d'un blog, par exemple...) dont on suit le développement par le Maître...

Donc, pour m'amuser, j'ai dév un petit truc qui s'appelle 'AutoMenu' : J'explique:

On appuie sur 'une touche', on donne un nom, et on a de suite une page dans laquelle on pourra coder, mais qu'on pourra aussi rapidement retrouver, puisque intégrée automatiquement dans un menu.

Au début, je l'ai fait pour le tuto que je suivais:

Dépôt lié au tuto de G.A.

Mais ensuite, je me suis dit que cela serait encore plus utile s'il était à la dispo des grands débutants, mais dans ce cas, faut que ce p'tit dev s'installe le plus simplement possible, en proposant un serveur intégré (GULP connect-php, etc synchronisation du browser, sass, etc...)

Ce qui me semble le plus performant est en utilisant composer; J'ai donc synchro mon dépôt Git avec et la commande pour l'install de la totale, c'est une seule ligne !

Mais j'ai un soucis: Tous les liens absolus foirent, forcément, maintenant que tout se trouve dans ./vendor/monUserName/AutoMenu/etc...

Sur le dépôt GitHub, ça marche impeccable:
Dépôt AutoMenu + généraliste

Mais donc pas avec la commande en console:

composer require grcote7/automenu

Quelqu'un peut-il me dire comment on gère cela, en règle générale ? Y a t'il une astuce ou doit-on adapter chaque lien (Bon, là, pas grave , il n'ya a que 3-4 pages de codes et assez petites) ? Ou doit-on dev dans le dossier vendor ?!?

Ou alors, mettre une petite mécanique en place pour que le script identifie qu'il est plutot en racine (Récupéré de Git), pour être développer lui même, ou en /vendor (Récupérer de packagist), pour (n')être (que) simplement utilisé ?

Par avance merci, et toute contribution dans le dépot est aussi la bienvenue :-) !

9 réponses


Salut,

Beaucoup de texte et je ne suis pas sûr de comprendre le problème, mais regarde bien la doc de composer pour la command require .

++

Aadminli
Auteur

Merci, Galyb... RTFM... Oui, oui, j'ai entendu parler de cette expression... ;-)....

Mais la question ne porte pas vraiment sur le require... J'ai un dépôt sur Github d'un p'tit script qui m'aide à apprendre en appliquant rapidement...

Basé sur le tuto POO de GA, il s'appelle naturellement POOGA... Lol !

Maintenant, j'aimerais en faire un package sur packagist afin qu'il s'installe sur tout nouveau projet, en une seule ligne de commande, et que ses classes soient alors et aussi, automatiquement intégrées par l'autoloader de vendor.

Mais bah, je continue de parcourir le tuto POO en PHP de GA, et à priori, il semblerait que le dev soit préférable directement dans l'arborescence finale (Le chapitre de 20, sur le tri-partiste schéma MVC le laisse suggérer à un moment donné...)

Maintenant, juste, je souhaitais avoir ici la confirmation de quelqu'un qui a déjà fait un dépôt packagist..

@ bon entendeur... ;-)...

&@Bi1tô :-) !

Aadminli
Auteur

Lol... Très gentil, Galyb...

Mais un composer.json lancé en vrac ainsi, et en l'occurence axé dev WP, sauf mauvaise compréhension de ma part, n'aide en rien l'avancée de ce débat... ;-)...

Enfin... 'Si tu me la montres, je te la montre !' ;-)... Lol

My custom composer.json file

Psitt @all...: Peu d'intérêt ;-) !

Enfin, merci tout de même ;-) ! (ça fait au moins un dump du threat (y) ! :-))

@Bi1tô !

Désolé, mais je ne comprends ni ce que tu veux ni ton problème. Si ton problème c'est j'ai du code sur un dépôt et je veux le mettre en dépendance dans tes projets tu as juste besoin de le déclarer avec ça. Si tu veux le déclarer dans packagist pour l'appeler plus simplement dans tes projets (mais ça reviens à la même chose) tu as juste besoin de faire ça.

Aadminli
Auteur

Super Galyb, ça approche... (y) !

En fait, ma question est:

Quand on dev, on dev avec le projet à la racine, ou direct dans /vendor/NomUser/NomProjet/ ?

Car en l'occurence, mon projet 'joue' pas mal avec les dossiers, donc, qd il est 'déplacé' dans /vendor/etc..., pas mal de trucs à gérer différemment selon le cas...

Bah, à priori, je vais dev direct dans /vendor, en faisant en sorte que .gitignore... l'ignore ! (Afin de gitter à donf ;-))

Mais tes liens sont tout à fait appropriés, maintenant :-) !

Ok je commence à comprendre. Ton script (dépendance) doit pouvoir s'installer n'importe où, mais oui, mais tu travailles sur une base qui est la tienne donc à toi de choisir. Si c'était un script pour symfony bien sûr tu l'adapterais pour qu'il fonctionne avec. Il n'y a pas une méthode parfaite. Pour ce qui est du gitignore, oui c'est une bonne méthode. Si tu regardes le gitignore, il utilise le même principe avec le composer qui installe les plug-ins et wordpress.

À toi de créer une architecture logique et réutilisable, composer te permets de faire plusieurs chemins de dépendance donc à toi de trouver ce qu'il y a de plus logique.

Aadminli
Auteur

Oui, Galyb, c'est cela...

Et donc, @ priori, je vais juste ' not .gitgnorer ' mon dossier dans vendor/

Comme dans ce dossier

Toujours preneur de quelques témoignages de 'packagisters'... ;-)...

Oui tu peux faire comme ça.