Démarrage

La plupart des informations proviennent du tutoriel Openclassroom de Alexandre Bacco : https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/symfony2-un-framework-php, très détaillé. Je ne résume ici que les commandes en ligne et syntaxe comme memento.

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

Suite- Création d'un bundle