Symfony2 – Quelques commandes utiles

Symfony2 est un puissant framework qui va vous permettre de réaliser des sites complexes rapidement, mais de façon structurée et avec un code clair et maintenable. En un mot : le paradis du développeur !

Ici nous allons voir quelques commandes utiles à chaque projet.
Pour plus de renseignements voir le cours complet sur OpenClassRoom

Créer un projet

Prérequis

Installer, si ce n'est pas déjà fait, Apache, MYSQL et PDO.

apt-get install php5 mysql-server php5-mysql

Architecture

Se rendre à l'endroit ou l'on veut créer son projet. var/www/html par exemple.

cd /var/www/html

Créer un dossier

mkdir symfony

Se rendre dans le dossier et récupérer composer.phar.

cd symfony
php -r "eval('?>'.file_get_contents('http://getcomposer.org/installer'));"

Installer Symfony 2 dans ce dossier

php composer.phar create-project symfony/framework-standard-edition monprojet "2.8" 

Créer une base vide au nom du projet dans MYSQL

mysql –u root –p
create database monprojet ;

Générer un bundle

php app/console generate:bundle
  • Are you planning on sharing this bundle across multiple applications?  yes
  • Configuration format: yml

Générer une entité

php app/console generate:doctrine:entity
  • Configuration format : annotation

Mettre à jour la base de données

php app/console doctrine:schema:update --force

Lister les routes

php app/console debug:router

API

Pour créer une api il faut :

  • Installer FosRestBundle et JMSSerializerBundle (lien et tuto)
  • Regarder que la classe soit chargée dans app/appKernel.php
  • Configurer les bundle dans app/config/config.yml

Exemple de controller :

namespace MonProjetVoitureBundleController;

use SymfonyBundleFrameworkBundleControllerController;

use FOSRestBundleControllerAnnotationsGet; 
use FOSRestBundleControllerAnnotationsPost; 
use FOSRestBundleControllerAnnotationsPut; 
use FOSRestBundleControllerAnnotationsDelete;

class DefaultController extends Controller {

  /** * 
  * @Get("/voiture") *
*/ 
  public function getVoitureAction() { 
    return $this->getUser()->getId(); 
  } 
  * @Get("/voiture/{id}") *
*/ 
  public function getVoitureAction($id) { 
    .....
  } 
}

Si une route ne s’affiche pas regarder

  • Si la fonction se termine par Action
  • Si le controller est déclaré dans
    • app/config/routing.yml
    • ou
    • namespace/nomdubundle/resources/config/routing.yml

Exemple de routing :

monprojet_marque
  type: rest
  resource: MonProjetVoitureBundleControllerMarqueController

Site

Exemple de routing site :

monprojet_backoffice_login:
  path: /backoffice/login
  defaults: { _controller: MonprojetBackofficeBundle:Default:login }

Les templates html.twig se trouvent dans le bundle créé : bundle/resources/views/...

PS : Merci à FCAO Software pour les explications et la formation

Enjoy !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.