On est aux portes d'une nouvelle ére au niveau technique. La POO à pris le pas sur le code linéaire depuis quelques années. Je rensent cependant une certaine amértume en voyant la lenteur de l'évolution du php.
On se trouve face à deux grand types d'achitectures server : DOTNET vs JAVA, et le php est bien loin à la traîne. Cela ne vient pas forcément des possibilités syntaxiques ou bien encore de la vitesse d'execution, mais cela peut tout simplement venir des difficultés de structurer ses sites.
J'ai eu l'occasion de travailler sous dotnet quelque temps. Les points forts de ce language sont les suivants :
- Le code n'est pas mélangé avec les sorties HTML
- Il est évenementiel
- Il est entiérement orienté objet
Je vous propose de nous intéréser de plus prés à l'aspect POO et évenementiel :
1. POO :
Le php permet de créer des classes et bien plus en version 5. Pour des raisons de compatibilité je ne publie pas et j'évite d'utiliser les syntaxes PHP5 même si celles-ci sont trés utiles.
La POO permet de mieux structurer son code, et de s'approcher a l'organisation de DOTNET. Je vous donne un exemple :
<?php
require_once('load_classes.php');
class form1 extends input_form {
function OnPost() {
echo ' * FORM 1 POSTED !<hr />';
}
}
class btn1 extends input_button {
function OnClick() {
echo ' * On vient de cliquer sur le boutton 1 !<hr />';
}
}
$form1 = new form1();
$btn1 = new btn1();
$btn1->action = 'submit';
$btn1->label = 'Valider le formulaire ! (btn1)';
?>
<?php $form1->__Header(); ?>
<?php $btn1->__Render(); ?>
<?php $form1->__Footer(); ?>
Vous avez donc dans ce genre de code 4 phases qui existent aussi sous DOTNET :
1 - Definition
2 - Instantiation
3 - Execution
4 - Sortie HTML
Cela permet de mieux gérer d'une part les sorties graphiques, et d'une autre part de mieux organiser le code-source.
2 . Evenementiel
L'autre approche est de créer des objet, rendus graphiquement visibles à l'utilisateur en HTML et qui peuvent évoquer des évenements : click sur un boutton, modification d'un texte, etc ...
Tout cela n'est pas natif, mais est possibile grace à l'héritage, et la surcharge de fonctions. Vous définissez dans la classe de l'objet, ainsi que les différentes fonctions permettant d'evenement. Lors de la sortie HTTP ou lors de l'instanciation de l'objet vous pouvez appeller ces différentes fonctions selon l'environement que vous avez définit.
(en PHP5 avec les interface et les classes abstraites, tout cela devient encore plus dément ...)
Un exemple concret vous est fournit dans le zip, contenant la gestion d'évenements sur des bouttons, formulaires et zones de textes. Celui-ci contient en plus la documentation compléte de ces classes sous les deux versions PHP.
Le but n'étant pas d'implémenter ces différents objet, mais plutôt de gerer des evenements en exemple, les differentes classes sont assez pauvres en fonctions.
Si vous améliorez ces classes, ou vous en construisez d'autres sur le modéle fournit vous pouvez me les envoyer à l'adresse suivante : cchiriac1983 [at] yahoo.com, je les ajouterais aux classes existantes.
Conclusion :
Les classes sont définies sous PHP4 et PHP5. Aucune modification n'est necessaire pour executer le code sous ces 2 versions de PHP.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.