PHP Avancé
Maintenant que tu sais bien te servir de PHP, que tu sais de quoi le
langage est capable et que tu as une bonne expérience du SQL, il
te faut passer à une étape supérieure qui te permettront
de réaliser des applications modulaires et génériques,
tout en maîtrisant la gestion de la mémoire, des performances
et de la sécurité.
Rendre son application modulaire avec les classes
Qui
dit modulaire, dit orienté objet... et donc utilisation de classes.
Les classes sont un ensemble de variables et de méthodes regroupées
en un bloc. Ces classes sont ensuite instanciées pour être
utilisables, plusieurs instances de la même classe peuvent être
utilisées en même temps. La grande force des classes réside
dans leur faculté à abstraire l'information et à
rendre les fonctionnalités génériques.
Plusieurs classes peuvent utiliser des types de membres identiques, dans
ce cas il est judicieux de faire un héritage. Si tu as un livre
d'initiation au C++, un exemple revient très souvent : celui des
classes "carré", "rond", "losange"
qui héritent tous de la classe "figure géométrique"
sachant qu'un carré, un rond ou un losange est une figure géométrique
particulière.
Une classe mère (qui n'hérite d'aucune autre) est appelée
interface si elle est abstraite (c'est à dire non instanciable)
et ne contient aucune donnée. Une interface est une sorte de "moule"
qui sert de base à des classes qui ont des caractéristiques
communes.
Rendre son application modulaire avec les templates
Si tu fais du PHP depuis un certain temps, on a souvent du te dire :
"sépare le code php du code html". Utiliser les templates
est une bonne chose, car cela provoque des interrogations utiles sur la
modularité et la généricité de ton code. On
utiliser souvent les templates via une librairie, la plus connue en php
est la phplib
qui est très pratique, mais tu peux créer ta propre librairie
si ton application a des besoins spécifiques.
Qu'est-ce que la généricité ?
Plus un algorithme est générique, plus il couvre
un nombre important de domaines. La généricité
est contraire à la spécificité. Il est important
de bien distinguer dans ton code les fonctions qui sont destinées
à accomplir des tâches spécifiques et celles qui sont
destinées à des tâches génériques. Cette
séparation permet d'une part d'éviter les redondances
de code, d'autre part d'assainir ta base de travail de manière
à la rendre évolutive.
Tu dois tenir compte de la généricité de tes fonctions,
mais aussi bien entendu de tes classes, de tes fichiers de code, de tes
templates et de tous tes objets. Une librairie par exemple est faite pour
être la plus générique possible et couvrir les besoins
d'algorithmes les plus spécifiques possible.
Quelques subtilités liées à la gestion de la mémoire
Une fonction récursive est une fonction qui s'appelle elle-même.
La récursivité permet de résoudre énormément
de problèmes et de simplifier beaucoup d'algorithmes, tels que
par exemple les parcours d'arborescences. Il faut faire cela dit très
attention aux fonctions récursives car elles peuvent prendre énormément
de place en mémoire. La "profondeur de parcours" d'un
algorithme récursif doit être limitée, et la taille
mémoire occupée par la fonction à chaque fois qu'elle
est appelée doit toujours être réduite au minimum.
Concernant PHP Expert
Il y a énormément de concepts et outils à voir pour
utiliser PHP de manière professionnelle. Les candidats lors des
derniers WE de rencontre n'étaient pas très nombreux mais
ils sont bien entendu invités à venir à plusieurs
la prochaine fois :).
|