Composer, CLI, Autoload, Services dans le FrameWork Symfony 3
Avant de lancer Composer, quel fichier doit-on compléter et avec quelles informations?
Quel est le nom du fichier qu'on exécute pour utiliser Composer?
composer.phar
Placé de préférence à la racine du projet
Quel logiciel indispensable faut-il installer pour permettre à Composer de gérer les versions des dépendances?
Git
Logiciel de gestion de versions décentralisé créé par Linus Torvalds
Comment télécharger l'Installeur de Composer et l'exécuter afin qu'au final on obtienne le fichier composer.phar?
Comment vérifier la version de Composer?
>php composer.phar -version
Comment mettre à jour Composer?
>php composer.phar selfupdate
ou
>php composer.phar self-update
Qu'est ce que msysgit?
C'est un logiciel pour Windows à installer avec Composer qui regroupe
Comment vérifier la version de Git?
>git version
Dans quel répertoire Composer installera ou updatera une librairie?
Ce répertoire est situé au même niveau que le fichier composer.phar
Commentez ces lignes
Ce tableau JSON est le minimum pour préciser à Composer ce qu'il doit faire.
Comment installer ou updater nos librairies avec Composer?
ou
si l'on souhaite éviter l'exécution éventuelle des scripts et des plugins de tiers personnes malveillantes.
Que fait Composer lors d'une commande:
>php composer.phar update
Quel fichier de Symfony charge le fichier \vendor\autoload.php généré par Composer?
\app\autoload.php
Quelles étapes respecter pour installer un bundle avec Composer?
Quel site internet regroupe les librairies que Composer utilise?
https://packagist.org/
Quel est le site officiel de Composer?
https://getcomposer.org
Quelle est la différence entre ces deux sites?
Dans quelle section du fichier composer.json doit-on mettre le nom de nos Bundles référencés pour les télécharger ou les updater?
On indique au Kernel le nom du Bundle que l'on souhaite utiliser en mode développement ou test.
Dans quel fichier de Symfony déclare-t-on nos Bundles?
app/AppKernel.php
Que faire si l'on souhaite ajouter manuellement un Bundle non référencé mais qui respecte la PSR-4, de manière que Composer s'occupe uniquement de l'ajouter à l'autoload mais ne s'occupe pas des updates?
Comment mettre à jour l'autoload aprés un ajout manuel de Bundle non référencé dans composer.json?
>php composer.php dump-autoload
Peut-on modifier nous-même les fichiers d'autoload de composer situé dans vendor/composer/?
Non, jamais.
Il faut laisser Composer changer le contenu de ses fichiers situés dans
vendor/composer/
Composer fait-il partie de Symfony?
Non, mais il est trés utilisé pour gérer facilement les dépendances de notre application.
Qu'est-ce qu'un service?
Un service est une classe associée à une configuration qui a pour vocation d'être accessible partout dans notre application.
Les services sont-ils utilisés par le coeur de Symfony?
Oui
Quel est l'intérêt des services?
Savoir créer et utiliser les services c'est utiliser Symfony au mieux de ses capacités?
Vrai
Le FrameWork Symfony est-il basé sur une architecture SOA?
Oui
SOA = Service Oriented Architecture
Qu'est-ce qu'un conteneur de service?
C'est une classe qui gère les services
Il contient les services qu'on a enregistrés et les fournit facilement avec leurs dépendances
Un service a-t-il un nom et une classe associée?
Oui
Comment appeler un service avec une méthode raccourcie et avec l'attribut $container?
ou
Dans quel fichier enregistrer un service?
services.yml
situé dans le répertoire /config de l'application ou du Bundle
Pourquoi enregistrer un service dans un fichier de configuration?
Pour que Symfony enregistre le service dans le container de service.
Pour utiliser un service par qui doit-on passé obligatoirement?
Le Container de Service
Le container de service s'assure-t-il que l'application ne contienne qu'une instance de la classe associée au service appelé?
Oui
C'est la même instance de la classe, le même objet qui est utilsé partout dans l'application
On parle de PARTAGE de service
Comment définir les dépendances d'un service A ?
FQCN (Fully Qualified Class Name) = espace de nom complet
Lors de la configuration d'un service peut-on lui ajouter un argument?
Oui
Cet argument peut être:
Comment voir la liste des services disponibles?
>php bin/console debug:container
Cette classe pourrait-elle convenir pour devenir un service?
Oui, elle ne fait rien pour l'instant mais c'est le minimum requis pour la déclarer comme service dans services.yml
Que faisons-nous dans ce fichier?
Nous déclarons un service afin que Symfony l'enregistre dans le container de service
Comment récupérer les paramètres configurés dans
$this->getParameter('nom_du_paramètre')
ou
$container->getParameter('nom_du_paramètre')
Quand on enregistre une classe comme un service, doit-on renseigner l'extension .php de la classe?
Non, on n'écrit pas OCAntispam.php car on renseigne l'espace de nom complet de la classe (FQCN)
Recommande-t-on de choisir un nom de service unique aussi cours que possible?
Oui
On peut pour le rendre unique le précéder du nom du bundle
Où peut-on écrire une classe que l'on souhaite transformer en service?
N'importe où dans /scr du moment qu'elle possède un namespace qui correspond on dossier où elle se trouve.
Mais en générale on la met dans un Bundle qui lui est propre.
Que peut contenir le container de Symfony?
On récupère le service say_hello du container de service
On lance la méthode say() du service
On passe au template la variable que nous a renvoyée le service
On retourne une réponse qui contient le template
Qu'est-ce que le FQCN que l'on utilise pour configurer une classe comme service dans le fichier service.yml?
C'est l'espace de nom complet de la classe appelée en Anglais Fully Qualified Class Name
Lors de la déclaration d'une classe comme service, quels sont les 3 types d'arguments que l'on peut utilser?
Qu'est-ce que l'Informatique?
C'est l'art de passer 15 jours à essayer de gagner quelques millisecondes.