Bonsoir,
Question de débutant en POO :
Etes-vous d'accord avec cette phrase ? Règle ou bonne pratique ?Comme les espaces de nom correspondent exactement aux répertoires
Bonsoir,
Question de débutant en POO :
Etes-vous d'accord avec cette phrase ? Règle ou bonne pratique ?Comme les espaces de nom correspondent exactement aux répertoires
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
Si la discussion est résolue, merci de cliquer sur le bouton
C'est la norme PSR-4...et utilisée par le 'logiciel composer. Tu peux aller à l'encontre si c'est ton choix (norme et non contrainte).
Christophe (cavo789)
Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
Par le développeur, et du coup dans le cas cité les développeurs de composer ont choisi cette norme.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
En effet, je n'ai pas dit ça.
Je dis que la phrase "Le nommage des espaces de nom ... respecte ... la structure des dossiers". Si j'ai une classe Core/Customer.php alors le namespace sera; par convention; namespace Core et, composer, se base sur ce lien nom de dossier / espace de nommage pour générer son fichier autoload.php.
Je disais aussi que c'est une convention (une bonne pratique) et qu'il s'agit de la norme PSR4 mais rien ne t'empêche de ne pas être d'accord et tu pourras alors écrire quelques lignes dans le fichier composer.json pour modifier le comportement standard.
Christophe (cavo789)
Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
Je cherche juste à comprendre les choses...
Faut-il comprendre que Composer suppose que le développeur respecte la norme PSR-4 ?
Dans un fichier composer.json, j'ai trouvé ce code :
et l'arborescence du projet est :
Code json : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 "autoload": { "psr-4": { "rawsrc\\PDOPlusPlus\\": "/" } },Peut-on m'expliquer ?vendor rawsrc pdoplusplus PDOPlusPlus.php autres fichiers
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
Si la discussion est résolue, merci de cliquer sur le bouton
Bonjour,
Si chaque projet PHP organise ces fichiers et ces espaces de nom de manière différente, le chargement automatique des classes pour chaque projet sera alors différents, ce qui complique l'interopérabilité des projets.
Pour éviter ce problème, le groupe PHP-FIG a proposé un standard pour l'organisation des fichiers et des espaces de nom : PSR-4
Si tous les projets PHP utilisent ce standard, l'interopérabilité est alors améliorée car on peut utiliser le même autoloader pour tous les projets.
Par défaut, Composer utilise effectivement un autoloader compatible avec le standard PSR-4.
Merci pour ces précisions.
La ligne 2 du fichier composer.json indiqué dans le post 6 signifie donc que cette librairie respecte la norme psr-4. OK ?
Et le : "/" à la fin de la ligne 3, que signifie-t-il ?
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
Si la discussion est résolue, merci de cliquer sur le bouton
Oui, la configuration "autoload": { "psr-4":... dans le fichier composer.json indique effectivement que l'autoloader utilisé pour ce projet respecte la norme PSR-4.
La configuration permet de définir la correspondance entre l'espace de nom du projet et le dossier des sources où sont les fichiers PHP.
Par exemple :
- "psr-4": {"rawsrc\\PDOPlusPlus\\": "/"} indique que toutes les classes du namespace rawsrc\PDOPlusPlus sont à la racine du projet (chemin relatif /)
- "psr-4": {"Acme\\": "src/"} indique que toutes les classes du namespace Acme sont dans le dossier src du projet
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager