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 !
1 Commentaire Laisser un commentaire