Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bonnes pratiques de programmation PHP

8 réponses
Avatar
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

8 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 09/03/2016 14:24, j'écrivais :

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 ?



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
Avatar
Otomatic
Olivier Miakinen <om+ écrivait :

> 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 ?

Personne n'a d'idée ?


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
Avatar
Denis Beauregard
Le Sun, 13 Mar 2016 21:51:57 +0100, Olivier Miakinen
<om+ écrivait dans fr.comp.lang.php:

Bonjour,

Le 09/03/2016 14:24, j'écrivais :

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 ?



Personne n'a d'idée ?



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
Avatar
Olivier Miakinen
Bonjour, et merci de ta réponse.

Le 14/03/2016 09:30, Otomatic m'a répondu :

> 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 ?

Personne n'a d'idée ?


Mon « livre » de référence, c'est la documentation PHP
http://php.net/manual/fr/



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
Avatar
Olivier Miakinen
Le 14/03/2016 16:47, Denis Beauregard m'a répondu :

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 ?



Personne n'a d'idée ?



Il y a "quelques années", c'est PHP 4 ?



Exactement. J'ai programmé ça au printemps 2003, et PHP 5 est sorti
en juillet 2004.

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.



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).

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.



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
Avatar
Eric Demeester
Bonjour,

Olivier Miakinen (Mon, 14 Mar 2016 23:42:25 +0100 - fr.comp.lang.php) :

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).



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
Avatar
otto
On Wed, 9 Mar 2016 14:24:06 +0100, Olivier Miakinen <om+ wrote:

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



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,
Avatar
Olivier Miakinen
Bonjour Éric,

Le 15/03/2016 10:39, Eric Demeester m'a répondu :

[...]

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



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 : <http://hoa-project.net/Fr/>.

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