Différences
Ci-dessous, les différences entre deux révisions de la page.
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:30] – madko | symfony [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 | + | Symfony est un framework de développement |
===== Framework kesako? ===== | ===== Framework kesako? ===== | ||
- | Un framework, ou cadre de developpement | + | Un framework, ou cadre de développement |
- | Il s'agit en general | + | Il s'agit en général |
- | Dans le framework Symfony, la structure utilisée s' | + | Dans le framework Symfony, la structure utilisée s' |
===== 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 | + | ===== Création |
- | La création d'un projet commence par l' | + | La création d'un projet commence par l' |
$ symfony init-project monProjet | $ symfony init-project monProjet | ||
===== L' | ===== L' | ||
- | La commande | + | La commande |
apps/ | apps/ | ||
batch/ | batch/ | ||
Ligne 35: | Ligne 35: | ||
web/ | web/ | ||
- | ==== Le repertoire | + | ==== Le répertoire |
- | Ce repertoire | + | Ce répertoire |
- | On retrouve les controleurs | + | On retrouve les contrôleurs |
- | Comme dit plus haut, une page de votre site sera en fait une action dans un controleur | + | Comme dit plus haut, une page de votre site sera en fait une action dans un contrôleur |
- | 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 |
$ symfony init-module frontend article | $ symfony init-module frontend article | ||
- | ==== Le repertoire | + | ==== Le répertoire |
- | Ce repertoire | + | Ce répertoire |
- | ==== Le repertoire | + | ==== Le répertoire |
- | Repertoire | + | Répertoire |
- | ==== Le repertoire | + | ==== Le répertoire |
- | 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), | + | 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), |
- | ==== Le repertoire | + | ==== Le répertoire |
- | ==== Le repertoire | + | |
- | ==== Le repertoire | + | FIXME |
- | ==== Le repertoire | + | |
- | ==== Le repertoire | + | ==== Le répertoire |
- | Contient les plugins symfony | + | |
+ | FIXME | ||
+ | |||
+ | ==== Le répertoire | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | ==== Le répertoire | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | ==== Le répertoire | ||
+ | Contient les plugins symfony | ||
$ symfony plugin-install <url> | $ symfony plugin-install <url> | ||
Ligne 72: | Ligne 88: | ||
$ symfony plugin-list | $ symfony plugin-list | ||
- | ==== Le repertoire | + | ==== Le répertoire |
- | Lien vers le repertoire | + | Lien vers le répertoire |
- | ==== Le repertoire | + | ==== Le répertoire |
- | Contient d'eventuels | + | Contient d'éventuels |
- | ==== Le repertoire | + | ==== Le répertoire |
- | Ce repertoire | + | Ce répertoire |
====== Installation de Symfony ====== | ====== Installation de Symfony ====== | ||
- | Le plus simple pour installer Symfony est de passer par l' | + | Le plus simple pour installer Symfony est de passer par l' |
# pear channel-discover pear.symfony-project.com | # pear channel-discover pear.symfony-project.com | ||
- | # pear install symfony/ | + | # pear install symfony/ |
- | Il faut bien sur avoir pear d' | + | Il faut bien sur avoir pear d' |
# yum install php-pear | # yum install php-pear | ||
+ | |||
+ | Il est aussi nécessaire d' | ||
+ | # yum install php-xml | ||
====== Configuration d'un vhost Apache utilisant Symfony ====== | ====== Configuration d'un vhost Apache utilisant Symfony ====== | ||
- | ====== | + | La configuration d' |
+ | < | ||
+ | < | ||
+ | ServerAdmin root@domaine.com | ||
+ | DocumentRoot / | ||
+ | ServerName www.domaine.com: | ||
+ | ErrorLog / | ||
+ | CustomLog / | ||
+ | |||
+ | < | ||
+ | AllowOverride All | ||
+ | Allow from All | ||
+ | </ | ||
+ | Alias /sf / | ||
+ | |||
+ | < | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride All | ||
+ | Order allow, | ||
+ | Allow from all | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====== | ||
+ | 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 // | ||
+ | < | ||
+ | [production1] | ||
+ | host=myapp.example.com | ||
+ | port=22 | ||
+ | user=myuser | ||
+ | dir=/ | ||
+ | </ | ||
+ | |||
+ | On teste ensuite avec la commande suivante: | ||
+ | $ symfony sync production1 | ||
+ | |||
+ | Cette commande lance le rsync avec l' | ||
+ | |||
+ | On lance la synchronisation avec la commande suivante: | ||
+ | $ symfony sync production1 go | ||