vous allez voir des choses modernes, si si (objet)
PHP est un vieux langage à la mauvaise réputation
Vous allez devoir bosser (de plus en plus) sur des vieux trucs :
importance de la maintenance vs innovation (ou innovation dans la
maintenance) : ODD ?
Les outils qu’on vous présente (Symfony) sont à l’état de l’art
(objet, génie logiciel)
Approche pédagogique : complexité maîtrisée (application des concepts en 2A, chaque chose
en son temps)
Symfony : PHP moderne
PHP « comme il faut »
S’appuyer sur un cadriciel (framework) moderne comme Symfony
Vous allez commencer à l’apprendre en hors-présentiel, cette semaine
Vous devriez comprendre ce que je vais montrer
Syntaxe objet
Appel de méthode
// crée une instance de la classe SymfonyStyle
$io = newSymfonyStyle($input, $output);
// appel de la méthode title() sur cette instance
// pas de valeur de retour
$io->title('list of todos:');
namespaceSymfony\Component\Console\Style;
/**
* Output decorator helpers for the Symfony Style Guide.
*/classSymfonyStyleextendsOutputStyle
{
// [...]
useSymfony\Component\Console\Command\Command;
// Classe ListTodo hérite de Command
classListTodosCommandextendsCommand
{
// Constructeur
publicfunction__construct($repository)
{
$this->todoRepository = $repository;
// Appel du constructeur de la classe mère
parent::__construct();
}
// [...]
/**
* Classe "Circuit" du Modèle
*/classCircuit
{
...
/**
* Set description
*
* @paramstring$description
*
* @returnCircuit
*/publicfunctionsetDescription($description)
{
...
Annotations : attributs PHP (> PHP 8.x)
// AsCommand: "Service tag to autoconfigure commands"
useSymfony\Component\Console\Attribute\AsCommand;
useSymfony\Component\Console\Command\Command;
// the command name and description shown when running "php bin/console list"
#[AsCommand(
name: 'app:list-todos',
description: 'List tasks',
)]
classListTodosCommandextendsCommand
{
façon déclarative d’enrichir le code, au lieu de :
useSymfony\Component\Console\Command\Command;
classListTodosCommandextendsCommand
{
// the command name and description shown when running "php bin/console list"
protectedstatic $defaultName = 'app:list-todos';
protectedstatic $defaultDescription = 'List tasks';
Installation des outils et bibliothèques
Nous installerons/utiliserons la variante CLI (Command Line Interface)
Interpréteur ligne de commande (php-cli)
$ php helloworld.php
Interpréteur invoqué par le serveur HTTP (php)
Bibliothèques :
php-sqlite3
php-intl
php-xml
…
Bibliothèques complémentaires
Logiciels faisant partie de l’écosystème de bibliothèques, composants,
frameworks PHP.