Présentation de symfony - Human talks aux docks le 8 juillet 2014
1. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 1/12InfoSaône - Tony Galmiche
Création de Bundle
avec Symfony
Présenté par Tony Galmiche
Human Talk aux Docks Numérique le 8 juillet 2014
2. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 2/12InfoSaône - Tony Galmiche
Présentation de Symfony
http://symfony.com/
3. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 3/12InfoSaône - Tony Galmiche
Présentation de Packagist
https://packagist.org/
4. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 4/12InfoSaône - Tony Galmiche
Installation avec Composer et Packagist
curl -s https://getcomposer.org/installer | php
Installation de composer pour gérer les dépendances des modules :
Installation de Symfony avec composer et Packagist :
php composer.phar create-project symfony/framework-
standard-edition path_project_symfony 2.5.*
Configuration :
http://localhost/config.php
Environnement de développement:
Configuration :
http://localhost/app_dev.php/
Documentation : http://symfony.com/fr/doc/master/book/installation.html
5. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 5/12InfoSaône - Tony Galmiche
Environnement de démo par défaut
6. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 6/12InfoSaône - Tony Galmiche
Création d'un Bundle (Module)
php app/console generate:bundle
--namespace=Acme/HelloBundle --format=yml
Création du Bundle :
Enregistrement du Bundle :
public function registerBundles()
{
$bundles = array(
// ...
new AcmeHelloBundleAcmeHelloBundle(),
Routage :
# app/config/routing.yml
acme_hello:
resource:
"@AcmeHelloBundle/Resources/config/routing.yml"
prefix: /
Doc : http://symfony.com/fr/doc/master/book/page_creation.html
7. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 7/12InfoSaône - Tony Galmiche
Contrôleur et vue avec Twig
Contrôleur :
class HelloController extends Controller {
public function indexAction($name) {
return $this->render(
'AcmeHelloBundle:Hello:index.html.twig',
array('name' => $name));
}
}
Vue :
{# src/Acme/HelloBundle/Resources/views/Hello/index.html.twig #}
{% extends '::base.html.twig' %}
{% block body %}
Hello {{ name }}!
{% endblock %}
Doc : http://symfony.com/fr/doc/master/book/page_creation.html
8. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 8/12InfoSaône - Tony Galmiche
Doctrine et les bases de données
Création d'une entité (table) :
php app/console doctrine:generate:entity
--entity="AcmeStoreBundle:Product"
--fields="name:string(255) price:float
description:text"
Class générée :
// src/Acme/StoreBundle/Entity/Product.php
namespace AcmeStoreBundleEntity;
use DoctrineORMMapping as ORM;
/**
* @ORMEntity
* @ORMTable(name="product")
*/
class Product
{
/**
* @ORMId
* @ORMColumn(type="integer")
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;
Doc : http://symfony.com/fr/doc/master/book/doctrine.html
9. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 9/12InfoSaône - Tony Galmiche
Manipulation des données
avec le contrôleur
// src/Acme/StoreBundle/Controller/DefaultController.php
use AcmeStoreBundleEntityProduct;
use SymfonyComponentHttpFoundationResponse;
public function createAction()
{
$product = new Product();
$product->setName('A Foo Bar');
$product->setPrice('19.99');
$product->setDescription('Lorem ipsum dolor');
$em = $this->getDoctrine()->getManager();
$em->persist($product);
$em->flush();
return new Response('Id du produit créé : '.$product->getId());
}
Doc : http://symfony.com/fr/doc/master/book/doctrine.html
10. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 10/12InfoSaône - Tony Galmiche
Générer un contrôleur CRUD
basé sur une entité Doctrine
Création du contrôleur avec les méthodes Create, Read, Update et Delete
(CRUD) :
php app/console generate:doctrine:crud
--entity=AcmeBlogBundle:Post
--format=annotation
--with-write
--no-interaction
Doc : http://symfony.com/fr/doc/master/bundles/SensioGeneratorBundle/commands/generate_doctrine_crud.html
Cette commande va générer le contrôleur CRUD mais également les
vues twig associées pour pouvoir manipuler l'entité concernée.
Cela va donc générer les formulaires pour créer, modifier, supprimer ou
consulter les données.
Ensuite il suffira d’utiliser twig pour mettre en page les formulaires par
exemple avec l'aide de Bootstrap
11. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 11/12InfoSaône - Tony Galmiche
Exemple de réalisation
12. Présentation de Symfony - Human Talk aux Docks le 8 juillet 2014 Page 12/12InfoSaône - Tony Galmiche
F i n
des questions ?