Bonjour,
jai un projet personnel qui me permet d'approfondir mes connaissances. C'est un projet avec le moins de dépendances possible, je n'utilise pas composer.
Je suis actuellement en train de refactoriser mon site en MVC, et je souhaiterai ajouter des tests unitaires à celui-ci. Le problème: d'après la documentation PhpUnit, je ne vois pas d'autre moyen que d'utiliser composer pour l'installer (et l'utiliser revient à "casser" mon autoloader).
En plus de cela, je voudrai que PhpUnit soit installer directement dans php et non pas dans mon projet. (faire comme si PhpUnit était une extension php comme PDO par exemple).
Voici la liste de mes tentatives qui de résolvent par des échecs:
J'ai tenter de faire composer --global, mais les class sont comme même pas inclue dans ma configuration php.
J'ai tenter avec pear, jusqu'à me rendre compte que l'installation de PhpUnit n'est plus supporté par pear.
J'ai téléchargé un fichier
phar contenant l'ensemble des class, mais je ne sais pas ou le mettre et comment manier mon autoloader pour l'inclure.
Auriez-vous des suggestions de solutions ?
Merci
Utiliser PEAR reviens à la même chose qu'utiliser composer.
Tu ne peux pas inclure PHPUnit comme une extension PHP car s'en ai pas une, c'est une librairie PHP.
Donc si tu veux t'en servir sans composer il faut que tu télécharges les sources et les dépendances de PHPUnit et les installes dans ton project et le registrer à ton autoloader.
Bon maintenant autres question, pourquoi tu utilises pas composer ?
Ce n'est pas parce que tu utilises composer que tu dois utiliser pleins de dépendances.
Je peux comprendre pourquoi tu veilles tenter d'implémenter un autoloader pour voir comment ça marche mais n'utilise pas ça en prod, ça ne sert ça rien de réinventer la roux pour quelque chose d'aussi standardisé (PSR-4).
Le gros avantages de composer c'est que tu n'as pas besoin de t'occuper d'aller chercher toutes les dépendances pour un librairie que tu veux utiliser comme PHPUnit, car si je ne m'en abuse PHPUnit à besoin de 8 dépendances qui eux aussi peuvent avoir des dépendances, qu'il va falloir que tu télécharge manuellement et que tu pourras pas mettre à jours car tu sais pas si avec une nouvelle version ça va pas casser une autre librairie.
Donc en gros le seul conseil pratique que j'ai a te donner c'est d'utiliser une solution testé et universelle qui est Composer et son autoloader. De plus si tu es en train de factoriser ton appli c'est un bon moment pour l'intégrer à ton framework custom.
Je connais composer et c'est le seul projet qui ne possède pas composer, pas de souci à se faire la dessus O:)
Merci
Salut,
@Gorgio s'est mal renseigné, tu peux tout simplement télécharger l'exécutable (PHAR) de PhpUnit sans utiliser composer https://phpunit.de/getting-started/phpunit-7.html.
Avec cet exécutable, tu n'as pas besoin de penser aux dépendances de PhpUnit car elles sont empaquetées dans l'exécutable.
J'ai téléchargé un fichier phar contenant l'ensemble des class, mais je ne sais pas ou le mettre.
Où tu veux, le mieux étant la racine de ton projet.
Tout est expliqué sur cette page https://phpunit.de/getting-started/phpunit-7.html sur la colonne de gauche.
et comment manier mon autoloader pour l'inclure
$ phpunit --bootstrap <Chemin vers ton autoloader> --testdox <Répertoire vers tes fichiers de tests>
Je peux comprendre pourquoi tu veilles tenter d'implémenter un autoloader pour voir comment ça marche mais n'utilise pas ça en prod, ça ne sert ça rien de réinventer la roux pour quelque chose d'aussi standardisé (PSR-4).
Ne l'écoute pas, fais ce que tu veux. Que tu utilises l'autoloader de composer ou un autoloader maison, c'est la façon de nommer tes namespaces qui fait que tu es PSR-4 ou non.
Et puis développer un framework maison tout entier avec ORM, Router, Autoloader, MVC, etc... sans aucune dépendances et une bonne expérience (que j'ai d'ailleurs faite de mon côté) pour apprendre en profondeur le PHP, je t'encourage à continuer