Démarrage
Installation - Prérequis
Symfony 2 fonctionne avec le gestionnaire de dépendances composer qui lui fonctionne avec le gestionnaire de versions GIT. Il convient donc d'intaller les deux. Depuis mai 2015, un installer Symfony 2 existe et s'occuppe de tout(?). Il fonctionne avec la version
GIT
Composer
Avec curl dans votre dossier
$ curl -sS https://getcomposer.org/installer | php
Sinon avec php
$ php -r "readfile('https://getcomposer.org/installer');" | php
Symfony 2 directement
Avec curl dans votre dossier (sous linux)
$ sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony $ sudo chmod a+x /usr/local/bin/symfony
Ou avec php
$ php -r "readfile('http://symfony.com/installer');" > symfony
Création d'un projet
Les commandes suivantes créees un nouveau dossier mon_projet, qui contient la dernière version de Symfony 2 (actuellement 2.7).
Avec l'installer Symfony
Sous Linux dans votre dossier d'application
$ symfony new mon_projet
Sous Windows
projets> php symfony.phar new mon_projet
ou
projets> php symfony new mon_projet
Sans l'installer
$ php composer.phar create-project symfony/framework-standard-edition mon_projet "2.7.*"
Accès à l'application
Le «lanceur» se trouve dans le répertoire web;
Pour modifier des paramètres de configuration, suivant la configuration du serveur apache, on peut le faire via la page :
http://localhost/mon_projet/web/config.php.
On accède à 'application via : http://localhost/mon_projet/web/app.php.
Avec la barre de debugage : http://localhost/mon_projet/web/app_dev.php.
Architecture
- app //tout sauf sources |- cache |- config //très important | |- config.yml | |- parameters.yml | |- routing.yml | |- security.yml |- logs |- ... |- AppKernel.php // le fichier à éditer pour "charger" un bundle |- SymfonyRequirements.php // fichier mis à jour automatiquement - bin //les "binaires" contient par exemple doctrine - src //les sources sous forme de bundle |- Machin | |- TrucBundle | | //namespace Machin/TrucBundle | | //names MachinTrucBundle | |- Controller | |- DependencyInjection | |- Entity | |- Form | |- Resources | | |- config | | |- public //css, images, js qui sont copiés dans le dossier web | | |- views // les templates | |- ... - vendor //les bibliothèques externes - web //le dossier public de l'application | |- bundles // les css, images et javascript provenant des bundles | |- app.php | |- app_dev.php | |- config.php - composer.json //le fichier des dépendances - composer.lock //enregistrement des dernières maj des dépendances réalisées - composer //executable