Bonnes pratiques de programmation PHP
Le
Olivier Miakinen

Bonjour,
Il y a quelques années j'ai développé des utilitaires de conversion
des nombres, entre la représentation en chiffres et la représentation
en lettres (en français).
http://www.miakinen.net/vrac/nombres#test
http://www.miakinen.net/vrac/source/nel.php
http://www.miakinen.net/vrac/source/nec.php
http://www.miakinen.net/vrac/nombres2.php
J'aimerais mettre ces utilitaires à jour en utilisant toutes les
techniques modernes développées depuis (espaces de nommage, classes
et objets, etc.) afin d'en faire une bibliothèque beaucoup plus
facilement intégrable dans d'autres projets.
Qu'est-ce que vous me conseilleriez comme lecture, si possible en
ligne, pour que je mette mes connaissances à jour afin d'adopter
les bonnes pratiques de programmation ?
Cordialement,
--
Olivier Miakinen
« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
Il y a quelques années j'ai développé des utilitaires de conversion
des nombres, entre la représentation en chiffres et la représentation
en lettres (en français).
http://www.miakinen.net/vrac/nombres#test
http://www.miakinen.net/vrac/source/nel.php
http://www.miakinen.net/vrac/source/nec.php
http://www.miakinen.net/vrac/nombres2.php
J'aimerais mettre ces utilitaires à jour en utilisant toutes les
techniques modernes développées depuis (espaces de nommage, classes
et objets, etc.) afin d'en faire une bibliothèque beaucoup plus
facilement intégrable dans d'autres projets.
Qu'est-ce que vous me conseilleriez comme lecture, si possible en
ligne, pour que je mette mes connaissances à jour afin d'adopter
les bonnes pratiques de programmation ?
Cordialement,
--
Olivier Miakinen
« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
Le 09/03/2016 14:24, j'écrivais :
Personne n'a d'idée ?
--
Olivier Miakinen
« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
Mon « livre » de référence, c'est la documentation PHP
http://php.net/manual/fr/
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont forcément raison. Coluche
Il y a "quelques années", c'est PHP 4 ? Le langage en soi a évolué
et on en est à PHP 7, mais les hébergeurs ont sans doute n'importe
quelle version entre 5 et 7. Je pense que peu importe la qualité du
travail, on arrivera à certaines fonctions compatibles avec disons
PHP 3 à 5, d'autres à partir de 4, etc. S'il y a amélioration, je
dirais qu'il faut peut-être simplement vérifier avec quelles versions
un utilitaire fonctionne au complet, ce qui est déjà un gros travail
en soi.
Pour l'espace de nommage, il y avait déjà des propositions avant que
PHP existe, comme nDebut pour un entier, CONST pour une constante,
etc.
Denis
Le 14/03/2016 09:30, Otomatic m'a répondu :
Oui pour la référence du langage et de tout ce qu'on peut faire avec,
mais je n'y ai pas trouvé de guide de « bonnes pratiques » de nommage
(entre autres) pour le développement d'une bibliothèque de classes ou
de fonctions réutilisables par d'autres que soi.
Par exemple, si j'ai des fonctions de traduction de nombres dans le
sens chiffres -> lettres et d'autres dans le sens lettres -> chiffres,
est-ce que je crée des classes de nom différent mais dans le même
namespace ? Ou bien est-ce que chaque namespace aura le même nom
que la classe correspondante ? Ou autre ?
--
Olivier Miakinen
« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
Exactement. J'ai programmé ça au printemps 2003, et PHP 5 est sorti
en juillet 2004.
Certes, mais je crois que je n'ai pas été clair. Mon but n'est pas
seulement d'avoir un code qui fonctionne pour mon propre compte, mais
un code qui soit aisément intégrable par quiconque pourrait en avoir
besoin, sans que l'utilisateur n'ait à se soucier de collisions de noms
de variables avec son propre code.
Je cherche à fournir une boîte noire qui soit le plus propre possible,
un machin prêt à intégrer sans aucun effet de bord (mais pas avec des
noms de deux kilomètres de long quand même).
Mais si je nomme un entier nDebut, il existe un risque non nul qu'un
utilisateur prenant mon code ait une collision avec une variable nDebut
existant chez lui.
Cordialement,
--
Olivier Miakinen
« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
Olivier Miakinen (Mon, 14 Mar 2016 23:42:25 +0100 - fr.comp.lang.php) :
C'est pile-poil à ça que sert la POO (Programmation Orientée Objet),
finalisée dans PHP depuis la version 5.
L'objet est conçu pour réaliser une tâche donnée, il peut
optionnellement recevoir des variables en entrée et en fournir en
sortie, l'utilisateur appelle l'objet et récupère le résultat sans avoir
à connaitre ni à comprendre le code contenu dans l'objet.
Tout est là (pour PHP 5) :
https://secure.php.net/manual/fr/language.oop5.php
Un guide de nommage de l'espace utilisateur est également proposé ici :
https://secure.php.net/manual/fr/userlandnaming.php
En plus de la bonne pratique de progmmation en PHP, je suis intéressé quel est le bon outil ou environnement de développement à utiliser?
Cordiallement
Otto
Le 15/03/2016 10:39, Eric Demeester m'a répondu :
Comme tu peux t'en douter, j'avais déjà lu tout ça (mais je reconnais
que je ne l'avais pas dit). Seulement je n'y ai pas trouvé de guide
de bonnes pratiques pour le choix des noms dans le cas de l'écriture
d'une bibliothèque à partager.
Finalement, j'ai cherché des bibliothèques existantes. J'ai trouvé
beaucoup de déchet, mais le projet Hoa m'a convaincu que c'était une
bonne manière de faire :
Dans ce projet, chaque sous-projet a un namespace constitué du nom
Hoa suivi du nom du module. Par exemple, l'ensemble traitant de
Mime a comme namespace HoaMime, et comme il y a une seule classe
qui s'appelle aussi Mime, on y accède par HoaMimeMime. On peut
aussi trouver des sous-espaces de nom (HoaMimeException).
Du coup, je pense choisir le même genre de structure, avec un nom
générique au début (peut-être OMiak) puis un nom spécifique au
type de bibliothèque.
En tout cas, merci à tous pour vos réponses.
Cordialement,
--
Olivier Miakinen
« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths