Astuces pour améliorer votre code PHP
Étant plus intégrateur web que programmeur/développeur dans mon métier, je tiens à m’excuser d’avoir négligé la partie programmation dans les articles de MaRevueWeb.
Pour remédier à cette lacune, voici donc un article comprenant plusieurs techniques très intéressantes afin d’améliorer certaines de vos habitudes de programmation et ainsi rendre votre code plus cohérent, propre et efficace!
La fonction var_dump est votre amie
Cette fonction vous permet de connaître la valeur d’une variable. Oui je sais, ça peut sembler évident, mais puisque le PHP est un langage dynamique, le processus de debogage peut être pénible et voir simplement la valeur d’une variable avec cette fonction peut vous aider à déboguer d’une façon plus efficace.
Nous pouvons passer plus qu’une variable à cette fonction. En voici un exemple :
Si vous ne faites qu’utiliser cette fonction lors du débogage et ne faites afficher rien d’autre, vous pouvez passer la balise “<pre>” comme premier paramètre. Ainsi, la résultante de votre fonction sera plus facile à repérer.
Respectez votre style
Chacun d’entre nous possède son propre style de programmation. Les problèmes surviennent lorsque vous devez écrire du code en équipe, ou pire encore, lorsque vous devez laisser votre code à une autre personne afin qu’elle puisse terminer le travail.
Un fait important est que le cerveau apprend plus facilement grâce à des modèles. Si vous respectez le même style lorsque vous programmez, vous aurez passé la première étape afin d’avoir un code plus propre et concis. Voici par exemple, deux approches différentes quant aux modèles de programmation.
<?php function test($var1) { if ($var1) //Vérifie si var1 est ok { echo "Var1 est Ok"; } } $var2=5; ?>
<?php function test($var1){ //Vérifie si var1 est ok if ($var1){ echo "Var1 est Ok"; } } $var2 = 5; ?>
Ça peut sembler sans importance, mais la position des commentaires ou la position des accolades doivent respecter un modèle et donc, votre style. Rappelez-vous, le cerveau apprend plus facilement si vous portez attention à tous ces petits détails.
Déclarez avec une signification
Lorsque vous déclarez une variable ou une fonction, vous devrez penser au rôle qu’elle aura à remplir. Vous pourrez alors la nommer d’une façon significative.
N’appelez pas une variable “$a” ou “$a1″, appelez-la plutôt “$requete_resultat” ou “$premier_element”.
Recherchez avant de programmer
Pour un développeur, il est excessivement important de connaître les outils à votre disposition. Peut-être êtes-vous en train de penser à la façon dont programmer une fonction pour ordonner des données dans un tableau (« array ») parce que vous ne savez pas que cette fonction a déjà été codée et partagée par quelqu’un sur le web. Bien sûr, il n’existe pas une fonction pour chacune des problématiques précises de votre projet, mais le langage PHP est utilisé par des dizaines de milliers de personnes et Google peut s’avérer extrêmement utile pour gagner du temps.
Les booléennes peuvent être complexes
Si vous devez utiliser une variable booléenne, déclarez-la et utilisez-la d’une manière affirmative comme dans l’exemple suivant.
<?php // Façon simple et claire $enable = false; if (!$enable) echo "Ok"; // Mauvaise façon. $disable = false; if (!$disable) echo 'Pas ok'; ?>
Copier-coller = No Way!
Ces deux commandes peuvent vous faire perdre une matinée complète. Je ne dis pas qu’il vous faut réinventer la roue à chaque fois que vous développez quelque chose, mais lorsque vous copiez du code à partir d’un site web ou d’un autre projet, prenez le temps de bien le comprendre avant de l’utiliser dans votre projet.
Supposons par exemple que vous trouviez un code similaire à ce que vous aimeriez reproduire sur votre site web et sans même lire la totalité du script, vous le collez dans le milieu de votre programmation. C’est comme si vous veniez d’insérer une pièce de rechange dans votre voiture sans savoir si elle convenait à votre auto. Si par la suite, votre voiture se brise, c’est normal, non?
Un programme est comme une voiture, prenez en soin et n’installez pas n’importe quoi sous le capot!
Les exceptions sont utiles
À chaque fois que vous devez faire une exception dans votre code, cela signifie que quelque chose ne va pas et que vous devez le réparer. Des exceptions dans un script peuvent vous faire sauver beaucoup de temps.
Divisez pour mieux régner
On peut voir la programmation comme étant une multitude de boîtes. Cette définition est assez abstraite, mais également très utile. Vous devez penser à des boîtes lorsque vous programmez et si quelques lignes de code partagent un objectif commun, vous devez créer une fonction et les y insérer. Voir l’exemple ci-dessous.
<?php // Mauvaise façon de procéder $int_array = array(1,9,10,12,7,2,8); echo "Nous devons ordonner ce tableau" . "<br />"; foreach($int_array as $value){ echo $value . "<br />"; } sort($int_array); echo "Le résultat est : " . "<br />"; foreach($int_array as $value){ echo $value . "<br />"; } ?>
La bonne façon :
<?php // Bonne façon $int_array = array(1,9,10,12,7,2,8); function print_array($array){ foreach($array as $value){ echo $value . "<br />"; } } echo "Nous devons ordonner ce tableau" . "<br />"; print_array($int_array); sort($int_array); echo "Le résultat est : " . "<br />"; print_array($int_array); ?>
Les commentaires sont presque autant importants que votre programmation
Imaginez que vous développiez un script complexe sans le moindre commentaire. Si quelqu’un doit réutiliser votre code ou même, si vous devez effectuer quelques modifications dans votre script quelques mois plus tard et qu’en fin de compte, une erreur apparaît. La réparer sera probablement une tâche très ardue puisque vous perdrez beaucoup de temps à vous remémorer la fonction de chacune des parties du code en question.
Il existe une façon de commenter pouvant aider à la compréhension du script. Cette pratique est assez répandue chez plusieurs programmeurs. Il s’agit d’écrire votre documentation à la fin du script tout en y ajoutant des caractères spéciaux tels que le « @ ». Par exemple : « @see … » pour référer à une autre fonction ou « @return … » pour spécifier le type de variable que la fonction retournera, etc.
La documentation officielle est la seule source fiable à 100%
Internet est une énorme source d’information, mais pour certaines informations techniques, la prudence est de mise. Si vous avez un doute sur une fonction que vous avez trouvé, vous devriez consulter une source officielle afin de vous assurer que son utilisation est sécuritaire.
La programmation orientée objet
Le PHP est un langage de programmation orientée objet. Voici un exemple d’une mauvaise utilisation du langage :
<?php class Person { private $givenName; private $age; } class Employee { private $givenName; private $age; } ?>
La bonne façon serait plutôt :
<?php abstract class Person{ private $givenName; private $age; // Getters et setters public function set_givenName($name){ $this->givenName = $name; } public function get_givenName(){ return $this->givenName; } public function set_age($age){ $this->age = $age; } public function get_age(){ return $this->age; } public function say_hello(){ echo("I am "); $this->print_data(); } // The son will define this function according to its features abstract public function print_data(); } class Employee extends Person{ private $role; // Getters et setters public function set_role($r){ $this->role = $r; } public function get_role(){ return $this->role; } /*This class have all the public and protected methods from the class Person*/ public function print_data(){ echo($this->getRole() . " " . $this->get_givenName() . " and I am " . $this->get_age() . " years old"); } } ?>
Les fonctions doivent restez modestes
Si vous avez une fonction dans laquelle vous devez défiler vers le bas pour en voir la fin, vous devriez probablement la séparer en d’autres fonctions.
Les Frameworks peuvent vous faire sauver beaucoup de temps
Les Frameworks sont des alliés pouvant effectuer pour vous le travail moins plaisant. Il y en a beaucoup sur le web, mais les plus populaires sont probablement CodeIgniter, Zend ou CakePHP. C’est à vous que revient le fait d’étudier vos possibilités et de regarder quelques tutoriels afin de trouver celui qui conviendra la mieux à vos besoins.
Si vous débutez avec les frameworks en PHP, plusieurs personnes recommandent CodeIgniter. L’outil possède une très bonne documentation qui rend la programmation facile et accessible.
Pour plus d’information, consultez CodeIgniter.com
Les expressions régulières sont toujours utiles
Vous devez supprimer des mots utilisez à maintes reprises dans un texte? Vous devez extraire des données dans un fichier au format quelconque? Voilà des tâches qui peuvent être exécutées très facilement à l’aide des expressions régulières. PHP possède plusieurs fonctions pour effectuer ce type d’actions et connaître ses expressions régulières vous permettra d’économiser beaucoup de temps.
Conclusion
Comme n’importe quoi dans la vie, vous ne devriez jamais arrêter d’apprendre de nouvelles choses et de nouveaux outils pour être plus efficace et plus performant pour les choses qui vous passionnent. Devenir un meilleur programmeur demande beaucoup de temps et ce, peu importe le langage que vous aurez à utiliser. Soyez patient et surtout n’oubliez pas que la documentation peut être un allié de force!
Marc Giroux | 2011/01/21
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
trucs de senior:
1. comments, comments, comments
2. respecter son style de programmation tout le long du developpement (PEAR tres bon exemple)
3. DRY : Don’t re-invent yourself.. si la fonction existe, utilise la, reprogramme la pas
4. Framework ou se battir un framework qui fait ce que l’on a besoin point.
5. SVN ou CVS
Olivier.. t’as appris d’un maitre 🙂
Marc Giroux | 2011/01/21
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
print_r et le « view source » de votre navigateur == best friend ( peut etre « time consuming » pour une debug simple (ou faites vous une method debug qui le fait a votre place)
Anthony Aouate | 2011/01/21
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
Pas un expert, mais Symfony comme framework php est à ne pas oublier.
Olivier Lemire | 2011/01/21
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
Merci pour cet article. C’est bien vrai il est important de maintenir une structure logique dans son code. Étant moi-même programmeur que je me force à respecter en majeure partie le standard établis par PEAR (http://pear.php.net/manual/en/standards.php). Les commentaires sont très importants aussi, surtout lorsque j’ai à travailler avec de gros projets. La meilleure manière de garder le suivi d’un gros projet est avec une combinaison de commentaires et une documentation (sous forme papier ou en wiki).
Anonyme | 2011/01/26
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
pour le 5, je préfère de très loin GIT à svn ou cvs :p
Anonyme | 2011/01/26
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
Et sinon, la doc *FR* n’est pas 100% fiable, il vaut mieux préféré la doc EN, qui elle est presque 100 sur 😉 (y’a 2 3 coquilles même dans le EN, oui oui)
Gili | 2011/01/27
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
Je viens de commencer le php à l’école, le modèle MVC n’est-il pas de rigueur quand on programme ?
22decembre | 2011/02/06
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
Bon article !
Il y a aussi un truc que tu peux faire, c’est donner des trucs sur « comment attaquer son projet ? »
Exemple : on a une idée, une envie, mais on ne sait pas par quoi commencer ! Et je ne parle même pas de savoir si l’outil ou le framework existe …
Magento Themes | 2011/02/10
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
Its all about big PHP codes that we used to write and some of us are still writing. Thanks for your tips, I believe it will bring up an impact on all programmers.
Marc Giroux | 2011/02/14
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
il est le plus clair et le plus utilisé
Incest | 2024/07/26
Warning: Undefined variable $default_avatar in /home/hochedez/public_html/marevueweb.com/wp-content/themes/marevueweb2012/comments.php on line 30
The Zune concentrates on being a Portable Media Player. Not a web browser. Not a game machine. Maybe in the future it’ll do even better in those areas, but for now it’s a fantastic way to organize and listen to your music and videos, and is without peer in that regard. The iPod’s strengths are its web browsing and apps. If those sound more compelling, perhaps it is your best choice.