Bien débuter avec le Framework Silex – Généralités – Installation

03 décembre 2017 - : MVC Silex - : Pas de commentaire

Bien débuter avec le Framework Silex – Généralités – Installation

Silex est un micro-framework PHP édité par la société SensioLabs, également créatrice de Symfony.

Afin d’appréhender les bases de Silex, il est nécessaire de bien comprendre les concepts du 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 permettant de séparer les différents concepts résultant 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 de l’utilisateur 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 fichier PHP qui ne fait 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.

Dans le cas particulier de Silex, nous utiliserons un module appelé Doctrine.

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

Silex

Comment installer Silex ?

Installer Silex peut s’effectuer de 2 façons :

Nous vous conseillons d’utiliser Composer, celui-ci étant chargé de gérer les dépendances éventuelles entre les différents composants de votre application.

La méthode d’installation via Composer que nous allons décrire ici est basée sur l’utilisation d’un squelette qui permet de débuter avec une architecture déjà fonctionnelle.

La ligne de commande ci-dessous sera à utiliser depuis le dossier correspondant à la racine de votre serveur web (c:\xampp\htdocs par exemple dans le cas de Xampp)

composer create-project fabpot/silex-skeleton monprojet "~2.0"
  • composer : lance l’outil composer
  • create-project : demande de créer un projet
  • fabpot/silex-skeleton : demande d’utiliser un squelette déjà défini
  • monprojet : chemin vers le dossier du projet (par rapport au dossier en cours). Ici Silex sera installé dans un dossier monprojet créé directement dans le dossier htdocs
  • « ~2.0 » : spécifie la version de Silex à installer

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

Structure de dossiers de Silex

Voici une copie d’écran de la structure par défaut d’un dossier dans lequel Silex est installé (avec le squelette)

  • bin : dossier contenant la console de débogage
  • config : contient les deux fichiers de configuration en environnement de développement (dev.php) et de production (prod.php) permettant de tester des configurations avant de les passer en production.
  • src : contient les fichiers
    • app.php qui « démarre » Silex et enregistre les différents composants dont notre application a besoin
    • console.php qui gère la console de débogage, qui affiche en détails les erreurs
    • controllers.php est le contrôleur principal qui est chargé lorsqu’une page est appelée par le navigateur
    • Ce dossier contiendra tous nos modèles et nos contrôleurs
  • templates : contient les fichiers « twig » contenant les vues
  • tests : si vous souhaitez effectuer quelques tests
  • var : contiendra le cache et les fichiers de logging (journaux)
  • vendor : dossier contenant tous les composants tiers utilisés par Silex (Symfony, Doctrine, Twig…)
  • web : 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
    • index_dev.php peut être utilisé pour le développement ou pour déboguer le code

Cet article est le 1er d’une série permettant d’apprendre pas à pas l’utilisation de Silex.

L’article suivant explique le fonctionnement de la première route

: Tutoriel Controllers Framework Généralités Models MVC Silex Views

Commentaires

Pas encore de commentaire

Laisser un commentaire