Memento Symphony 2

Je mets en ligne mon memento pour Symphony 2. Cette page tient plus du pense-bête que du billet. Qui sait ces informations pourront peut-être dépanner quelqu’un. Pour réaliser ce memento du framework, je me suis appuyé dans un premier temps sur le tuto du site du zéro que je vous conseille de lire.

Architecture de Symphony 2

/app

Contient les informations relatives à notre site. Avec Symphony, un site = une application.

/src

Contient notre code source. Nous plaçons à l’intérieur nos bundles (nos briques).

/vendor

Contient les bibliothèques externes.

/web

  • Seul répertoire accessible aux visiteurs. L’accès au site se fait par ce répertoire (http://localhost/Symfony/web/)
  • Contient Images, CSS et JavaScript, …
  • et aussi Contrôleur Frontal (app.php – production – et app_dev.php – développement)
    • Tout passe par le Contrôleur Frontal.
    • les logs du mode production sont dans app/logs/prod.log

Symphony 2 en action (MVC)

  1. un visiteur fait une requête
  2. le contrôleur frontal prend la requête
  3. il charge le noyau de symphony 2, il transmet la requête au noyau, le noyau demande au routeur quel contrôleur appliqué
  4. le contrôleur chargé demande au modèle de lui donner les informations
  5. le modèle donne les infos au contrôleur
  6. le contrôleur transmet à vue les informations
  7. vue redonne à contrôleur la page html construite avec les infos
  8. le contrôleur donne la page html au visiteur

Les Bundles

Ils sont placés dans des répertoires dans /src. Chaque bundle a ses contrôleurs, ses vues, ses modèles, ses classes, …

Structure d’un bundle

  • /Controller – Contient vos contrôleurs
  • /DependencyInjection – Contient des informations sur votre bundle (chargement automatique de la configuration par exemple)
  • /Entity – Contient vos modèles
  • /Form – Contient vos éventuels formulaires
  • /Resources
    • /config – Contient les fichiers de configuration de votre bundle (nous placerons les routes ici, par exemple)
    • /public – Contient les fichiers publics de votre bundle : fichiers CSS et JavaScript, images, etc.
    • /views – Contient les vues de notre bundle, les templates Twig
    • /Tests – Contient vos éventuels tests unitaires et fonctionnels. Nous développerons sans faire de tests au début.

Création d’un bundle

  1. Dans l’invite de commande : php app/console generate:bundle
  2. Namespace : PseudoUtilisateur + NomDuBundle + Bundle (avec Bundle en suffixe obligatoire)
    • Exemple de Namespace : FredoMonpremierbundleBundle
  3. Destination: /src avec notre code source
  4. Formation de Configuration (yml, xml, annotation, php)
  5. Structure
  6. la création automatique est terminée

Symphony a créé la structure du bundle (/src/Fredo/Monpremierbundle/). Le seul fichier obligatoire se trouve à la racine du bundle : FredoMonpremierbundleBundle.php.

Le bundle a été enregistré auprès du noyau (/app/AppKernel.php). L’enregistrement se fait en ajoutant une entrée au tableau $bundles ( new Fredo\Monpremierbundle\FredoMonpremierbundleBundle() ).

Symphony a enregistré le bundle auprès du routeur (app/config/routing.yml). Chaque bundle dispose de sa propre route, elle est présente dans (src/Fredo/MonpremierbundleBundle/Resources/config/routing.yml).

Accès web: (http://localhost/Symfony/web/app_dev.php/hello/world)

j’en suis ici (j+1) http://www.siteduzero.com/informatique/tutoriels/developpez-votre-site-web-avec-le-framework-symfony2/mon-premier-hello-world-avec-symfony2

Publié dans PHP

quand j’aurai le temps

  • les filtres wordpress
  • plugin wordpress et enregistrement de données
  • les wordpress custom post type
  • la bdd d'un blog wordpress
  • la balise more de wp
  • personnaliser une galerie wp
  • gérer les longueurs des extraits de wp
  • les animations css3
  • le memento symphony2
  • le squelette d'une page html5
  • liste sur plusieurs colonnes
  • le responsive design
  • exemple d'un jeu basique en html5
  • la réplication des bases de données
  • mettre en place une architecture en silo avec wp
  • parser un fichier xml (donc un rss) avec php5
  • mettre en place lightbox sans plugin
  • améliorer les performances de son wp
  • ajouter un bouton à l'éditeur de texte de wp
  • ...