Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
symfony [2008/05/28 13:31] madkosymfony [2012/10/30 22:47] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Présentation de Symfony ====== ====== Présentation de Symfony ======
  
-Symfony est un framework de developpement d'application php dont le but est de simplifier et d'accelerer la création d'applicatif web en se basant sur de nombreux scripts d'automatisation ainsi que sur l'utilisation d'un modèle très structuré appelé MVC. +Symfony est un framework de développement d'applications PHP dont le 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. 
  
 ===== Framework kesako? ===== ===== Framework kesako? =====
-Un framework, ou cadre de developpement en français, se dit d'un environnement visant à faciliter le developpement d'application. 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).+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 general 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 entieres sans taper la moindre ligne de code.+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 differents fichiers de configuration est soit en XML soit en YML. +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. 
  
 ===== MVC kesako? ===== ===== MVC kesako? =====
Ligne 15: Ligne 15:
 Quand une page est appelée, le moteur Symfony appele la fonction correspondante du controleur qui va recupè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 specifique, ce n'est pas le cas de Symfony ce qui est encore un autre avantage.  Quand une page est appelée, le moteur Symfony appele la fonction correspondante du controleur qui va recupè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 specifique, ce n'est pas le cas de Symfony ce qui est encore un autre avantage. 
  
-===== Creation d'un projet Symfony ===== +===== Création d'un projet Symfony ===== 
-La création d'un projet commence par l'utilisation du script permettant de generer toute l'arborescence de votre application.+La création d'un projet commence par l'utilisation du script permettant de générer toute l'arborescence de votre application.
  
   $ symfony init-project monProjet   $ symfony init-project monProjet
  
 ===== L'arborescence Symfony ===== ===== L'arborescence Symfony =====
-La commande précedente aura généré les répertoires suivants:+La commande précédente aura généré les répertoires suivants:
   apps/   apps/
   batch/   batch/
Ligne 35: Ligne 35:
   web/   web/
  
-==== Le repertoire apps ==== +==== Le répertoire apps ==== 
-Ce repertoire contiendra les differentes sous sections importantes de votre application, bien souvent un //frontend// et un //backend// (pour l'administration par exemple). Ces sous-sections (app dans Symfony) seront ensuite divisées en modules.+Ce répertoire contiendra les différentes sous sections importantes de votre application, bien souvent un //frontend// et un //backend// (pour l'administration par exemple). Ces sous-sections (app dans Symfony) seront ensuite divisées en modules.
  
-On retrouve les controleurs dans les modules de vos apps.+On retrouve les contrôleurs dans les modules de vos apps.
  
-Comme dit plus haut, une page de votre site sera en fait une action dans un controleur d'un de vos modules. Imaginons que votre projet soit un blog, vous aurez donc une app frontend, avec un module article qui aura par exemple dans sa partie controleur une action lister, l'url pourra donc etre http://votreserveur/article/lister. L'action lister sera en fait une fonction //executeLister()// définie dans le fichier //apps/frontend/modules/article/actions/actions.class.php//.+Comme dit plus haut, une page de votre site sera en fait une action dans un contrôleur d'un de vos modules. Imaginons que votre projet soit un blog, vous aurez donc une app //frontend//, avec un module //article// qui aura par exemple dans sa partie contrôleur une action //lister//L'URL pourra donc être http://votreserveur/article/lister. L'action //lister// sera en fait une fonction //executeLister()// définie dans le fichier //apps/frontend/modules/article/actions/actions.class.php//.
  
-La deuxième étape après avoir créé notre projet consiste à initialiser une application. La commande est la suivant pour créer par exemple l'appli frontend:+Pour résumer: Navigateur Web => URL => Routing symfony (par défaut ou personnalisé) => App => module => action => view 
 + 
 +FIXME définition du routing symfony 
 + 
 +La deuxième étape après avoir créé notre projet consiste à initialiser une application. La commande est la suivant pour créer par exemple l'application //frontend//:
  
   $ symfony init-app frontend   $ symfony init-app frontend
  
-On créé ensuite nos modules, par exemple le module article de notre appli frontend, avec la commande suivante:+On créé ensuite nos modules, par exemple le module //article// de notre application //frontend//, avec la commande suivante:
  
   $ symfony init-module frontend article   $ symfony init-module frontend article
  
-==== Le repertoire batch ==== +==== Le répertoire batch ==== 
-Ce repertoire peut contenir des fichiers YML pour injecter des jeux de données, pour d'eventuels tests par exemple.+Ce répertoire peut contenir des fichiers YML pour injecter des jeux de données, pour d'éventuels tests par exemple.
  
-==== Le repertoire cache ==== +==== Le répertoire cache ==== 
-Repertoire interne servant de cache pour Symfony. +Répertoire interne servant de cache pour Symfony. 
  
-==== Le repertoire config ==== +==== Le répertoire config ==== 
-Contient certains fichiers de configuration des différents éléments de Symfony, comme les informations de connexion sur la base de données, le modèle de données (schema.yml ou schema.xml), et d'autres propriétés interessantes+Contient certains fichiers de configuration des différents éléments de Symfony, comme les informations de connexion sur la base de données, le modèle de données (schema.yml ou schema.xml), et d'autres propriétés intéressantes
  
-==== Le repertoire data ==== +==== Le répertoire data ==== 
-==== Le repertoire doc ==== + 
-==== Le repertoire lib ==== +FIXME 
-==== Le repertoire log ==== + 
-==== Le repertoire plugins ==== +==== Le répertoire doc ==== 
-Contient les plugins symfony installé pour votre projet. On installe un plugin avec la commande suivante:+ 
 +FIXME 
 + 
 +==== Le répertoire lib ==== 
 + 
 +FIXME 
 + 
 +==== Le répertoire log ==== 
 + 
 +FIXME 
 + 
 +==== Le répertoire plugins ==== 
 +Contient les plugins symfony installés pour votre projet. On installe un plugin avec la commande suivante:
  
   $ symfony plugin-install <url>   $ symfony plugin-install <url>
Ligne 72: Ligne 88:
   $ symfony plugin-list   $ symfony plugin-list
  
-==== Le repertoire symfony ==== +==== Le répertoire symfony ==== 
-Lien vers le repertoire où se trouve les bibliothèques de Symfony (le repertoire d'installation de Symfony).+Lien vers le répertoire où se trouve les bibliothèques de Symfony (le répertoire d'installation de Symfony).
  
-==== Le repertoire test ==== +==== Le répertoire test ==== 
-Contient d'eventuels tests unitaires. +Contient d'éventuels tests unitaires. 
  
-==== Le repertoire web ==== +==== Le répertoire web ==== 
-Ce repertoire contient la racine de votre site web (DocumentRoot d'Apache). On y trouve le repertoire images, css pour la mise en forme de vos pages web+Ce répertoire contient la racine de votre site Web (DocumentRoot d'Apache). On y trouve le répertoire images, css (fichiers au format CSS) pour la mise en forme de vos pages Web
  
 ====== Installation de Symfony ====== ====== Installation de Symfony ======
-Le plus simple pour installer Symfony est de passer par l'outil php pear. L'installation se fait avec les commandes suivantes:+Le plus simple pour installer Symfony est de passer par l'outil PHP pear. L'installation se fait avec les commandes suivantes:
   # pear channel-discover pear.symfony-project.com   # pear channel-discover pear.symfony-project.com
-  # pear install symfony/symfony+  # pear install symfony/symfony-1.1.0
  
-Il faut bien sur avoir pear d'installé, sous fedora le package s'appelle php-pear. On peut donc l'installer avec la commande suivante:+Il faut bien sur avoir pear d'installé, sous Fedora le package s'appelle //php-pear//. On peut donc l'installer avec la commande suivante:
   # yum install php-pear   # yum install php-pear
 +
 +Il est aussi nécessaire d'installer le package //php-xml//:
 +  # yum install php-xml
  
 ====== Configuration d'un vhost Apache utilisant Symfony ====== ====== Configuration d'un vhost Apache utilisant Symfony ======
Ligne 115: Ligne 134:
 </file> </file>
  
-====== Deployer une application Symfony ======+====== Déployer une application Symfony ====== 
 +Symfony contient aussi des outils pour faciliter le déploiement de projet Symfony. 
 + 
 +On peut par exemple packager et déployer un projet Symfony sur une machine où Symfony ne serait pas installé. Il faut utiliser la commande suivante: 
 +  $ symfony freeze 
 + 
 +Toutes les bibliothèques utilisées par votre projet seront déplacées dans votre arborescence. Il suffira ensuite de copier le répertoire de votre application sur votre serveur pour que tout fonctionne. Bien sur votre serveur doit quand même disposer de PHP. 
 + 
 +On peut revenir en arrière avec la commande: 
 +  $ symfony unfreeze 
 + 
 +Symfony dispose aussi d'un script permettant de copier votre application sur un serveur distant en utilisant rsync par ssh. Pour cela il faut configurer vos serveur dans le fichier //config/properties.ini// comme suit: 
 +<file> 
 +[production1] 
 +  host=myapp.example.com 
 +  port=22 
 +  user=myuser 
 +  dir=/home/myaccount/myproject/ 
 +</file> 
 + 
 +On teste ensuite avec la commande suivante: 
 +  $ symfony sync production1 
 + 
 +Cette commande lance le rsync avec l'option dry-run pour juste simuler le transfert. 
 + 
 +On lance la synchronisation avec la commande suivante: 
 +  $ symfony sync production1 go
  
  
  
  • symfony.1211981489.txt.gz
  • Dernière modification : 2012/10/30 22:48
  • (modification externe)