jeudi 5 mars 2009

 

     / Frameworks /Symphony

Symphony

 

Le Framework Symfony fournit un cadre d'organisation des codes pour développer des sites Web complexes rapidement et plus facilement maitenables.

Pré-requis

Quelques pré-requis sont nécessaires :

  • avoir des notions et une expérience en PHP
  • maîtriser les notions de base de la Programmation orientée Objet
  • avoir quelques notions sur ce que sont les "espaces de noms" et leur usage en PHP

Le site d'openclassrooms, https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/symfony2-un-framework-php redirige vers des supports pour acquérir ces bases.

La programmation orientée objet

La programmation orienté objet étend la modularisation de la programmation pour regrouper les codes informatiques à développer selon la nature des objets.

Concernant les valeurs, le premier niveau d'abstraction a conduit à définir des constantes, puis de constantes, puis de variables.

Concernant les calculs, la modularité est apparue en séparant les codes dans des fichiers séparés, puis en créant des fonctions, permettant de déclarer les variables en remarquant celles qui seront utilisées dans les calculs internes des fonctions, de celles qui seront modifiées (paramètre de sortie en tant que valeur rendue par la fonction)

Les codes étant séparés, différents programmeurs peuvent s'occuper des différents fichiers, à condition que l'objet de chaque fichier soit clairement identifié. D'où l'apparition des objets : les objets sont des éléments individuels comportant des informations (valeurs de données) et des fonctionnalités (méthodes). En pratique, il y a un fichier par type d'objet (on dit classe d'objet). Une classe regroupe les informations caractéristiques de chacun des objets qu'elle représente (c'est une classe d'équivalence au sens mathématique) et les fonctions qui traitent ces objets informatiquement. Il y a toujours au moins 2 méthodes :

  • le constructeur réserve l'espace mémoire requis pour créer un objet de la classe, et initialise les informations qui caractérisent l'instance : pour la classe voiture, le nombre de roues différera selon le modèle, la couleur selon le véhicule réel ;
  • le destructeur rend à l'ordinateur la mémoire occupée par un objet détruit ;

D'autres méthodes sont presque toujours définies :

  • l'éditeur (le nom change selon les classes) modifie les informations de l'objet.
  • le visualiseur (le nom change selon les classes) affiche les informations de l'objet.

Portée des variables et des noms de fonction

La modularité conduit à ce qu'un même nom de variable (et de fonction) soit utile pour chaque classe d'objet. Par exemple, le nom de l'objet sera souvent porté par une variable appelée name, et le constructeur par une fonction appelée construct.

Pour les variables et fonctions qui ne sont utilisées qu'à l'intérieur d'une classe, il suffit de réduire leur portée pour qu'aucun conflit n'apparaisse dans les codes.

Mais il est nécessaire de transmettre des valeurs d'une classe à l'autre dans le programme principal. Le principe de passer toutes les valeurs en paramètre de fonction n'est pas tenable. Il est donc nécessaire que certaines valeurs (comme des valeurs de configuration) soient partagées par tous les programmes. On déclare que leur portée est static par opposition à public.

Les bibliothèques de codes partagés étant de plus en plus nombreuses, arrive forcément un jour où il y a un conflit de nom.

Espace de nom

LicPro - PAGORA