Archive

Articles taggués ‘symfony’

Menez le web à la baguette avec symfony (3) : refonte des glasses

L’habit fait le moine

ours-pwn3d-glaceBienvenue dans le troisième épisode de la série “symfony, sex and fun”. Si vous arrivez en cours de route, vous pouvez consulter les articles précédents. Pour l’instant nous disposons d’un module bookmark fonctionnel (ajout, suppression etc.) mais qui n’est pas très joli. Voyons comment symfony permet de gérer les vues.

Note : à partir de maintenant, nous allons faire pas mal de modifications dans les fichiers. Je vous suggère de vous munir d’un bon éditeur PHP si vous souhaitez refaire la démarche chez vous. Pourquoi pas Netbeans et son très bon support de symfony, par exemple ?

L’affichage des vues dans symfony suit le design pattern decorator : chaque application dispose d’un layout global, dans lequel on va injecter le rendu du template de l’action appelée (il va venir le décorer). L’approche généralement utilisée dans d’autres projets suit le chemin inverse : on concatène un en-tête, puis le contenu, et enfin un pied de page, mais ni le header ni le footer ne représentent un document HTML valide.

Lire la suite…

Share

Menez le web à la baguette avec symfony (2) : un squelette pour pas chair

Résumé de l’épisode 1

Dans l’article précédent,  nous avons rapidement vu que des solutions intéressantes apparaissent au sein du monde PHP. Parmi l’un des nombreux frameworks émergeants, nous avons choisi d’étudier symfony à travers la création d’une application web de gestion de bookmarks, Plum. Nous avons pour l’instant créé une application par défaut. Il reste maintenant à lui faire faire son “vrai” travail…

Nous manipulons pour l’instant peu de types de données : les bookmarks et les tags. Voici un diagramme UML les représentant :

7bda79a8

Diagramme de classes de notre modèle

(Ce magnifique diagramme a été réalisé en ligne sur le site de yuml.me. Publicité gratuite :)).

Pour facilement manipuler les données en base, symfony gère de base deux Object-Relational Mappers (ORM) : Doctrine et Propel. Cependant, comme Doctrine est devenu l’ORM par défaut depuis la version 1.3 du framework, c’est lui que nous utiliserons. Doctrine propose une solution élégante d’accès aux données via le langage DQL, inspiré du HQL d’Hibernate, ainsi qu’une API d’accès aux données.  Propel se base de son côté sur une API semblable aux Criteria. Que l’on utilise Doctrine ou Propel, symfony fonctionne de manière semblable. Dans la suite de cet article, je vais détailler pas à pas les étapes suivantes :

  • configuration de l’accès à la BDD (hôte, port etc.),
  • définition du modèle de données dans un fichier au format YAMLconfig/doctrine/schema.yml,
  • appel de la commande responsable de la génération des classes du modèle, du code SQL, de la création de la BDD et chargement des données de test en BDD,
  • éventuelle génération de modules dans une application pour faire du CRUD basique,
  • adaptation du code et utilisation de l’API Doctrine… Lire la suite…
Share

Menez le web à la baguette avec symfony

Introduction

Chez Excilys, nous ne sommes pas sectaires. Bien que le groupe concentre son activité autour des technologies Java, bon nombre de collaborateurs s’intéressent à d’autres langages ou technologies. Après Android et Grails, je vais vous présenter le framework PHP symfony au travers d’une série d’articles dans lesquels nous construirons petit à petit une application web.

Commençons par un rapide aperçu de PHP.

elephpant

PHP: Hypertext Preprocessor est un langage de script créé par Rasmus Lerdorf en 1994. Bien que le langage soit majoritairement utilisé pour créer des sites/applications web (du fait qu’il propose beaucoup d’outils allant dans ce sens), il est tout à fait possible d’utiliser PHP pour créer des applications type script d’administration système, voire des applications graphiques (avec les bindings GTK par exemple).

Depuis ses débuts où il était écrit en Perl, PHP a évolué petit à petit pour devenir un langage objet (grosso modo depuis sa version 5), avec de nombreuses facilités telles que :

  • un accès très simple aux SGBD (MySQL, PostGreSQL…),
  • une manipulation de XML via DOM ou SimpleXML,
  • la possibilité de générer des images via GD,
  • de nombreuses autres API.

Durant de nombreuses années, PHP a été considéré comme un langage d’amateur, Lire la suite…

Share