Apprendre Symfony 3

Présentation

Programme

  1. Présentation
  2. Créer son Bundle
  3. Configurer son application
  4. Créer sa première page
  5. Créer sa première entité
  6. Insérer quelques éléments en BDD à partir d'un formulaire

Programmation Orienté Objet

Ancien système

Procédurale

  • Très verbeux
  • Complexe à maintenir
  • Facile à comprendre pour les débutants

						$mysqli = mysqli_connect("example.com", "user", "password", "database");
						$res = mysqli_query($mysqli, "SELECT 'Please, do not use ' AS _msg FROM DUAL");
						$row = mysqli_fetch_assoc($res);
						echo $row['_msg'];
					

Programmation Orienté Objet

  • Paradigme (style de programmation informatique) élaboré dans les années 1960
  • Intégré à PHP dans sa version 5 (13 juillet 2004)
  • Composition :

class Person
{
  private $firstname; // Ceci est une propriété (property) ou un attribut (attribut)

  /**
      Ceci est une méthode (method)
  */
  public function getFirstname()
  {

  }
}
                

Composer, la gestion des dépendances

Composer

  • gestionnaire de paquets libre écrit en PHP
  • Edité par Nils Adermann et Jordi Boggiano en mars 2012
  • Permet d'installer les librairies dont le projet dépend
  • Projet disponible sur la plateforme Github

Composer.json

  • Fichier unique pour chaque site
  • Permet de définir de façon textuelle les dépendances
  • Permet de séparer les plugins requis en production et en développement

                    {
                        require": {
                            "curl/curl": "^1.6",
                            "sensio/framework-extra-bundle": "^3.0.2",
                            "simple-bus/symfony-bridge": "^4.1",
                            "sendinblue/sendinblue-api-bundle": "2.0.*"
                        },
                        require-dev": {
                            "sensio/generator-bundle": "^3.0",
                            "symfony/phpunit-bridge": "^3.0"
                        }
                    }
                

Composer en ligne de commande

$> composer install
$> composer update


Installation

https://getcomposer.org/doc/00-intro.md

Symfony, les composants réutilisables

Un peu d'histoire

  • Ecrit par Fabien Potencier et sa société SensioLabs
  • communauté de plus de 300 000 développeurs
  • 3 versions :
    • Première version : sortie en octobre 2005 et abandon en 2012
    • Seconde version : sortie en juillet 2011 et réécriture complète pour PHP5.5+
    • Troisième version : sortie le 30 novembre 2015 (continuité de la version 2.8)

Les composants

  • Ensemble de 54 composants réutilisables
  • Offre des fonctionnalités modulaires, adaptable et surtout universelle
  • Utilisé par :
    • Drupal 8
    • Joomla
    • eZ (anciennement eZ Publish)
    • TYPO3
    • Magento
    • Prestashop
    • Laravel

Les principaux composants

  • HttpKernel
  • HttpFoundation
  • Routing
  • Security
  • Guard
  • Translation
  • Config
  • Yaml
  • Filesystem
  • Form
  • Validator
  • Templating
  • Console
  • Debug

Ajouter une dépendance

composer require symfony/yaml


Le fichier composer.json s'édite tout seul


                    {
                        require": {
                            "curl/curl": "^1.6",
                            "sensio/framework-extra-bundle": "^3.0.2",
                            "simple-bus/symfony-bridge": "^4.1",
                            "sendinblue/sendinblue-api-bundle": "2.0.*",
                            "symfony/yaml": "2.0.*",
                        },
                        require-dev": {
                            "sensio/generator-bundle": "^3.0",
                            "symfony/phpunit-bridge": "^3.0"
                        }
                    }
                

Symfony, le framework

Framework ? Késako ?

  • ensemble de composants qui sert à créer les fondations, l'architecture et les grandes lignes d'un logiciel
  • respecter certains patrons de conception
  • les bibliothèques le constituant sont alors organisées selon le même paradigme

Symfony anciennement Symfony FullStack

  • Orienté Service
  • Basé sur une architecture MVC (Modèle, Vue, Controller)
  • Utilise un controller frontale (app.php)
  • utilisé par des géants du Web : Yahoo, M6 Web, Ted, Dailymotion, Groupe Figaro, Maisons du Monde, ...

Installer Symfony Full-Stack

Via Composer

composer create-project symfony/framework-standard-edition my_project_name

Via Symfony


                # Linux and macOS systems
                 sudo mkdir -p /usr/local/bin
                 sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
                 sudo chmod a+x /usr/local/bin/symfony

                # Windows systems
                 php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"

                # Installation du projet
                symfony new my_project_name
            

Bug Windows

En cas de bugs lors de l'installation de Symfony (sous Windows, erreur curl: (60) SSL certificate), télécharger un certificat https://curl.haxx.se/ca/cacert.pem modifier le fichier php.ini https://openclassrooms.com/forum/sujet/symfony-3-erreur-installation et y ajouter le chemin vers le certificat.

Des questions ?

Merci !