Installation et programme

  1. Introduction
  2. Pré-requis
  3. Les outils
    1. IDE
    2. AMP Stack
    3. Git
    4. Composer
    5. Vérification finale
  4. Programme
  5. Evaluation

Introduction

L’objectif est ici de mettre en place les outils nécessaires au développement d’applications web avec Symfony.

Il vous est demandé d’effectuer ces actions avant la première séance.

Pour faciliter le développement, éviter les problèmes de conflits avec des installations précédentes et éviter de perdre du temps à télécharger, installer et résoudre les problèmes sur le poste de chacun, nous allons utiliser une image VirtualBox basée sur Ubuntu.

Cette image contiendra tous les outils dont nous allons nous servir tout au long du cours (voir section Les outils).

Installation

Si vous n’avez pas VirtualBox d’installé sur votre machine, vous pouvez le télécharger ici.

Téléchargez ensuite la dernière version de l’image au format OVA ici.

Pour l’importer dans VirtualBox :

Lancer la VM, après quelques secondes vous devriez arriver sur le bureau Ubuntu.

Cliquez ici en cas de problème

Pour fonctionner, Virtual Box nécessite que la virtualisation soit activée dans votre BIOS.

Vous pouvez trouver comment y accéder et quel paramètre modifier en cherchant sur internet "Activer virtualisation" accompagné de la marque de votre PC (et éventuellement la marque du processeur).

Si vous remarquez des lenteurs, quittez la VM, cliquez sur la VM puis Paramètres dans Virtual Box.

Dans Système, vous pouvez augmenter la mémoire RAM allouée (restez dans la zone verte).

Dans Système > Processeur, vous pouvez augmenter le nombre de coeurs alloués (restez dans la zone verte).

Dans Affichage, vous pouvez ajuster la mémoire vidéo et cocher la case "Activer l'accélération 3D".

Vous êtes déjà connecté. Si votre session se coupe ou que vous devez exécuter des commandes en sudo, connectez-vous avec les identifiants :

Bien que la VM contienne tout le nécessaire, il se peut que les versions installées au moment de la création de la VM ne soit pas les dernières.

Assurez-vous que les outils sont à jour avec les commandes suivantes :

sudo symfony self:update -y
sudo apt-get update
sudo apt-get upgrade
sudo snap refresh

Appropriation de la machine

Cette machine virtuelle est la vôtre !

N’hésitez pas à vous l’approprier et notamment à vous connecter à vos applications préférées.

Vous aurez au moins besoin de :

Une fois fait, vous êtes prêts pour le cours. Je vous recommande de quand même lire les parties Pré-requis et Les outils.

Pré-requis

Ce cours nécessite certaines connaissances qui serviront de base à votre découverte du framework Symfony :

Les outils

IDE

Je recommande fortement l’utilisation de PhpStorm disponible pour Windows/Linux/macOS.

En tant qu’étudiant, vous avez accès à une license gratuite pour la durée de vos études.

Vous possèdez peut-être déjà une license si vous avez déjà utilisé d’autres outils de la suite Jetbrains tel que IntelliJ Idea ou PyCharm.

Il existe d’autres IDE ou éditeur de texte mais ceux-ci sont moins adaptés et je ne les maîtrise pas personnellement :

PHP

Symfony est écrit en PHP, nous allons donc l’utiliser tout au long de nos TPs.

Certains d’entre vous ont peut-être une “mauvaise image” de PHP. Cette réputation vient du fait que PHP est le premier langage de programmation qui a permis au plus grand nombre de créer son site web, connecté à une base de données et avec du HTML dynamique.

Au fur et à mesure, PHP s’est imposé pour la création de sites et d’application web dynamiques mais cela sans conventions, sans bonne pratique de développement, sans typage des propriétés, souvent “Quick and Dirty”, etc

Au fil des années, PHP s’est largement amélioré notamment grâce aux différents frameworks, aux améliorations successives du langage, la standardisation de la programmation objet, la création du PHP-FIG, etc

Depuis la version 7 de PHP, les notions de typage fort ont été introduites dans PHP comme c’était déjà le cas dans d’autres langages comme Java. Cette version a également amélioré la performance par rapport à PHP 5 par 2.

Nous utiliserons dans le cours PHP 7.4, sachez néanmoins que PHP 8 est sorti en novembre 2020 mais les librairies PHP ne sont pas encore toutes compatibles ce qui rend son utilisation plus compliqué pour l’instant.

Git

  1. Configurez Git avec les commandes suivantes :
    1. git config --global user.name "PRENOM NOM"
    2. git config --global user.email "EMAIL@DOMAINE"
    3. git config --global core.editor nano
  2. Tapez dans un terminal ssh-keygen -f /home/symfony/.ssh/id_rsa et choisissez un mot de passe
  3. Copiez le contenu du fichier ~/.ssh/id_rsa.pub
  4. Ajoutez votre clé SSH à Github ou Gitlab
  5. (Optionnel) Vous pouvez installer une application graphique pour faciliter l’utilisation de Git.
    1. Github Desktop Windows/macOS
    2. Git Kraken Windows/macOS/Linux

Lien utile : Git Cheat Sheet pour Git et Github en français.

Composer

Composer est le gestionnaire de dépendances PHP, il est essentiel pour une bonne utilisation de Symfony.

Il peut être comparé à npm pour Javascript, pip pour Python ou encore Gradle et Maven pour Java.

Composer Cheat Sheet - aide mémoire intéractive en anglais sur composer

Programme

Voici le programme du cours, il est donné à titre indicatif et est susceptible de changer.

  1. Introduction
  2. Composer
  3. Création d’un projet Symfony
  4. Première page
  5. Routing et Templating
  6. Intégration d’un template
  7. Base de données
  8. Injection de dépendances
  9. Forms et validation
  10. Création de groupes et présentation du sujet de projet
  11. QCM d’évaluation des connaissances

Sujets transversaux :

Evaluation

TPs notés

Tous les TPs seront notés.

Ils seront à rendre sur un repository Github ou Gitlab auquel vous me donnerez accès s’il est en privé (@t-richard sur les deux plateformes).

Vous serez notés sur les points suivants :

Participation

La participation au cours sera prise en compte dans la notation du module.

Posez des questions, faites des remarques, demandez des précisions, des ressources supplémentaires, aidez vos camarades, participez à l’amélioration des sujets, faites des parallèles avec d’autres cours ou vos expériences professionnelles, etc

Surtout dans le cas de cours à distance, l’interaction rendra le cours plus intéressant pour tout le monde.

Je passerai également lors des TPs vous poser des questions pour jauger de votre compréhension des différents sujets abordés. Ces questions pourront être notées, une raison de plus pour poser des questions si ce n’est pas clair pour vous.

Projet

Vous formerez des groupes 4 personnes pour réaliser un projet sur un thème au choix. Formez vos groupes et commencez à réfléchir au sujet dès le début du cours, n’attendez pas la dernière minute.

Ce projet devra vous permettre de mettre en application les différentes notions vues en cours.

Vous devrez faire une application qui répond à un véritable besoin, voici quelques pistes de recherche :

N’hésitez pas à faire preuve d’audace. Si vous doutez de votre sujet et/ou de sa faisabilité, n’hésitez pas à m’en faire part afin que je puisse vous guider.

Vous serez notés sur :

Installation manuelle

AMP Stack

Une stack AMP (Apache, MySQL/MariaDB, PHP) permet de mettre en place un environnement de développement local comportant tous les outils nécessaires.

Il existe pleins d’outils pour installer une telle stack.

Si vous êtes sur Windows, je recommande l’utilisation de Laragon. Ce logiciel apporte non seulement Apache, Mysql, PHP mais aussi une gestion automatique des hôtes virtuels en https, le terminal Cmder et le logiciel de gestion de base de données HeidiSQL.

Lors du choix de l’édition de Laragon, vous avez le choix entre Full et Lite.

Je recommande l’installation de la version Full, car vous pouvez passer l’installation de Composer et passer à l’étape de 2 de l’installation de Git.

Sur Laragon, vous pouvez ouvrir un terminal avec le bouton Terminal dans l’interface.

Interface Laragon

Téléchargez également la version 7.4 de PHP et installez là dans Laragon comme indiqué ici

Git

Si vous avez choisi l’édition Lite de Laragon, vous pouvez ajouter Git avec la fonctionnalité Quick Add de Laragon.

  1. Rendez-vous sur le site officiel de GIT pour télécharger et installer la dernière version de Git.
  2. Vérifiez votre installation en ouvrant le terminal de votre choix avec la commande git --version, la commande doit vous afficher la version de Git.
  3. Configurez Git avec les commandes suivantes :
    1. git config --global user.name "PRENOM NOM"
    2. git config --global user.email "EMAIL@DOMAINE"
    3. git config --global core.editor nano
  4. (Optionnel) Vous pouvez installer une application graphique pour faciliter l’utilisation de Git.
    1. Github Desktop Windows/macOS
    2. Git Kraken Windows/macOS/Linux

Lient utile : Git Cheat Sheet pour Git et Github en français.

Composer

Composer est le gestionnaire de dépendances PHP, il est essentiel pour une bonne utilisation de Symfony.

Rendez-vous sur le site de Composer pour télécharger et installer composer.

Sur Linux (et Mac ?), vous pouvez exécuter la commande curl -sS https://getcomposer.org/installer | php -- --filename=composer --install-dir=/usr/local/bin

Sur Windows, téléchargez l’exécutable sur le site de composer

Composer a besoin de l’exécutable PHP sur Windows, avec Laragon vous pouvez définir C:\laragon\bin\php\php-7.2.19-Win32-VC15-x64\php.exe comme exécutable.

Composer Cheat Sheet - aide mémoire intéractive en anglais sur composer

IDE

Je recommande fortement l’utilisation de PhpStorm disponible pour Windows/Linux/macOS.

En tant qu’étudiant, vous avez accès à une license gratuite pour la durée de vos études.

Vous possèdez peut-être déjà une license si vous avez déjà utilisé d’autres outils de la suite Jetbrains tel que IntelliJ Idea ou PyCharm.

Symfony CLI

Suivez la documentation officielle en fonction de votre système d’exploitation.

Vérification finale

Dans votre terminal (Laragon fournit Cmder par défaut en cliquant sur le bouton Terminal), vous devriez pouvoir taper les 4 commandes suivantes sans avoir d’erreur

php -v
git --version
composer --version
symfony -v
mysql --version