Présentation de PHP Symfony

Publié par Edouard le

Introduction

Le besoin se résume ainsi:

Imposer un cadre rigide dans la manière de développer une application PHP, afin de créer une structure claire et facile à maintenir, tout en disposant d’une base d’outils simple facilitant la programmation.

Tout ceci incite à utiliser un framework, concept déjà présent dans de nombreux langage. Pour PHP, il en existe plusieurs, un des plus utilisé étant Symfony.

Présentation de Symfony

Symfony est donc un framework de développement d’applications PHP. Son but est de simplifier et d’accélérer la création d’applicatifs Web en se basant sur de nombreux scripts d’automatisation ainsi que sur l’utilisation d’un modèle très structuré appelé MVC.

Dans les outils facilitant la tâche du développeur, Symfony fournit un ORM (Object-Relational Mapping). Un ORM s’occupe de gérer les données persistantes et de vous les présenter sous forme d’objet. Il est ainsi plus facile de manipuler ces données, et par exemple il n’est plus nécessaire de taper la moindre requête SQL. L’ORM utilisé avec Symfony est Propel, celui-ci étant fournit sous forme de plugin il peut être remplacé par Doctrine.

Qu’est-ce qu’un Framework?

Un framework, ou cadre de développement en français, se dit d’un environnement visant à faciliter le développement d’applications. Il en existe un bon nombre dans la plus part des langages de programmation (Struts pour java, Ruby on Rails pour Ruby, Symfony pour PHP etc).

Il s’agit en général d’outils pour automatiser les opérations répétitives, pour structurer l’application, et respecter certaines normes. Ces outils peuvent être des plus basiques au plus complexes allant jusqu’à générer des applications entières sans taper la moindre ligne de code.

Dans le framework Symfony, la structure utilisée s’appuie sur le modèle MVC, les scripts sont souvent en PHP et la syntaxe utilisée dans les différents fichiers de configuration est soit en XML soit en YML.

Qu’est-ce que le modèle MVC?

MVC est un modèle ultra répandu surtout en développement web, MVC signifiant Model-View-Controler. Son principal avantage étant de séparer les données (partie Modélisation), leur traitement (partie Contrôleur), et la mise en forme (partie Vue).

Quand une page est appelée, le moteur Symfony appelle la fonction correspondante du contrôleur qui va récupérer et/ou traiter les données, qui passera ensuite tout ça à la partie vue. La partie vue dans beaucoup de framework emploie un langage de template spécifique, ce n’est pas le cas de Symfony ce qui est encore un autre avantage.

Installation

L’installation de Symfony est simple du moment que vous disposez sur votre machine d’une version récente de PHP et de l’outil Pear de gestion de module PHP.

# pear channel-discover pear.symfony-project.com
# pear install symfony/symfony-1.2

Pour vérifier:

# symfony -V
symfony version 1.2.2 (/usr/share/pear/symfony)

La création d’un projet s’initialise avec la commande suivante:

$ symfony init-project monProjet

Configuration d’un virtual-host Apache

Le meilleur moyen d’accèder à une application PHP utilisant Symfony est de passer par un virtual-host dont voici un exemple de configuration:

<VirtualHost *:80>
        ServerAdmin root@domaine.com
        DocumentRoot /var/www/vhosts/www.domaine.com/web/
        ServerName www.domaine.com:80
        ErrorLog /var/log/httpd/www.domaine.com-error_log
        CustomLog /var/log/httpd/www.domaine.com-access_log combined

        <Directory "/usr/share/pear/data/symfony/web/sf">
                AllowOverride All
                Allow from All
        </Directory>
        Alias /sf /usr/share/pear/data/symfony/web/sf

        <Directory "/var/www/vhosts/www.domaine.com/">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>

Pour aller plus loin

Ce billet n’étant qu’une introduction à Symfony, il existe un excellent tutoriel sur le site officiel du projet qui reprend tout le déroulement d’une application concrète jour après jour: Jobeet

Catégories : PHP

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *