Symfony 4 - Créer un blog pas à pas - Installer Symfony

29 juillet 2019 - : MVC Tutoriel Symfony - : 0 commentaire - : 591 - Tutoriel Framework MVC Symfony

Visualisez les fichiers de cette série sur GitHub

Cet article est le premier d'une série qui va traiter de la création d'un blog à l'aide du framework PHP Symfony.

Bien que le leader mondial des frameworks MVC actuels soit Laravel, le leader en France est actuellement Symfony.

Les parts de marché pourraient évoluer dans les mois ou années qui viennent en raison de l'extrême simplification du fonctionnement de Symfony depuis la version 4, sujet de cette série d'articles.

Avant de commencer à parler de Symfony en particulier, il est important de bien assimiler le concept MVC.

Le MVC

Qu’est-ce que le MVC ?

Le MVC (Model View Controller) est une méthode d’organisation du développement d’applications Web qui permet de séparer les différents concepts qui résultent de nos pages PHP.

En effet, trois grandes « actions » peuvent être identifiées lorsque nous développons en PHP :

  • Les requêtes en base de données (Model)
  • Le traitement des données (Controller)
  • L’affichage de pages HTML (View)

Dans les faits, le navigateur chargera le contrôleur, qui interrogera la base de données par l’intermédiaire du modèle, celui-ci répondra au contrôleur qui traitera les données et les passera à la vue (View), celle-ci étant en charge de générer le code HTML qui est renvoyé au navigateur.

Les Modèles (Models)

Ce que nous appelons un Modèle est en réalité un ou plusieurs fichiers PHP qui ne font que gérer les échanges avec la base de données. Lorsque nous avons besoin de lire ou écrire dans la base de données, nous faisons appel au Modèle.

Les Vues (Views)

Les vues sont principalement des fichiers HTML contenant le code destiné à être transmis au navigateur de l’utilisateur. Nous disposerons des données transmises par le contrôleur afin de les intégrer dynamiquement dans nos pages.

Les Contrôleurs (Controllers)

Véritable tour de contrôle de notre application, le contrôleur a pour fonction de faire l’interface entre les modèles et les vues. Il est chargé de demander les données par l’intermédiaire des modèles, de traiter ces données et de les transmettre aux vues, prêtes à être utilisées.

Le routing

Bien qu’indépendant de l’architecture MVC, le routing fait partie intégrante de tous les frameworks PHP.

Dans une architecture classique, nous pointons vers des fichiers :

  • http://monsite.fr/index.php
  • http://monsite.fr/inscription.php
  • http://monsite.fr/login.php

Dans une architecture MVC, nous allons pointer vers des dossiers virtuels appelés routes

  • http://monsite.fr/user/inscription
  • http://monsite.fr/user/login
  • http://monsite.fr/blog/article

Cette architecture offre de nombreux avantages :

  • Protection des fichiers, ceux-ci n’étant plus affichés par le navigateur
  • Des URLs plus simples à mémoriser pour les utilisateurs
  • Amélioration du référencement si les routes contiennent des mots-clé contenus dans la page correspondante

Symfony

Après cette courte inroduction au MVC, parlons de Symfony.

Symfony est un framework PHP créé par une entreprise Française, Sensiolabs.

Ce framework, aujourd'hui en version 4, offre de nombreux avantages et "simplifie" le développement d'applications web. Il se base sur de nombreuses extensions disponibles sur le web et les fait travailler ensemble pour fournir une immense boîte à outils.

Installation

Avant d'installer Symfony, vous allez avoir besoin de quelques petites choses :

  • Un serveur Web/PHP/MySQL (type xampp, laragon...), UNIQUEMENT pour la base de données, Symfony embarque son propre serveur Web
  • Un IDE type Visual Studio Code
  • composer (https://getcomposer.org)
  • Un terminal

Il est important de noter que nous aurons besoin d'une base de données "innoDB" afin d'avoir une structure relationnelle de base de données. Un serveur MySQL 5.6 est un minimum.

Pour installer Symfony, ouvrez votre terminal dans le dossier dans lequel vous souhaitez installer votre projet et entrez la commande suivante

composer create-project symfony/website-skeleton monblog
  • composer : lance l’outil composer
  • create-project : demande de créer un projet
  • symfony/website-skeleton : demande d’installer la dernière version de symfony avec un modèle de squelette de site
  • monblog : chemin vers le dossier du projet (par rapport au dossier en cours). Ici Symfony sera installé dans un dossier monblog

Une fois la commande lancée, quelques secondes/minutes s’écouleront avant la fin du processus d’installation.

ATTENTION : Symfony 5 est sorti le 21 novembre 2019 et sera installé par défaut avec la commande ci-dessus. Quelques différences notables seront à prendre en compte. Dans la suite de ces tutoriels, des mentions "*Symfony 5" préciseront les différences.

*Symfony 5 : A ce stade, veuillez installer l'exécutable de Symfony disponible sur https://symfony.com/download

Structure de dossiers de Symfony

Voici une copie d’écran de la structure par défaut d’un dossier dans lequel Symfony est installé

Liste des dossiers de Symfony

  • bin : dossier contenant l'outil principal du terminal
  • config : contient les fichiers de configuration, comme son nom l’indique
  • public : partie publique du site, contiendra TOUT ce qui doit être accessible par le navigateur (js, css, images, vidéos…)
    • index.php est le fichier chargé par le navigateur pour TOUTES les pages
  • src : dossier principal qui contiendra les sources de notre application web. C'est le dossier dans lequel nous allons créer le plus de fichiers
  • templates : dossier qui contient les vues, tout le HTML du site
  • tests : dossier utilisé pour les tests
  • translations : contient les fichiers de traduction
  • var : contient le cache et les logs
  • vendor : dossier contenant tous les composants tiers utilisés par Symfony

Démarrer le serveur

Une fois l'installation terminée, vous pouvez démarrer votre serveur en utilisant la commande

php bin/console server:run

Vous pourrez accéder à votre site en entrant l'adresse http://127.0.0.1:8000 (habituellement)

*Symfony 5 : La commande est

symfony serve

C'est la fin de ce 1er article, dans quelques jours l'article suivant parlera de la conception de la base de données de notre blog.

Obtenir de l'aide

Pour obtenir de l'aide, vous pouvez accéder aux forums de Nouvelle-Techno.fr ou au serveur Discord pour une entraide par chat

Visualisez les fichiers de cette série sur GitHub

Partager

Partager sur Facebook Partager sur Twitter Partager sur LinkedIn

Commentaires

Ecrire un commentaire

Pas encore de commentaire

Ecrire un commentaire