H2 - P2019
Développement web
Cours 34 - 2016-05-23
- Silex est un "micro-framework" PHP
- Développé par SensioLabs
- Repose sur certains composants du Framework Symfony 2
- Beaucoup moins complexe et lourd, mais très performant
- Courbe d'apprentissage élevée
- Nécessite au minimum PHP 5.3 (idéalement 5.4)
Nous allons créer un site d'actualité contenant des pages classiques (home, catégorie, article, contact, about)
Créer le projet et importer Silex
Composer
- Les fichiers composer.json et composer.lock sont utilisés par le gestionnaire de dépendances Composer
- Il permet de facilement télécharger et mettre à jour les librairies en gérant les dépendances
- Nous ne l'utiliserons pas dans ce cours
- Le dossier vendor contient Silex ainsi que d'autres composants que nous verrons plus tard
- Le dossier web contiendra notre site
.HTACCESS
- Silex permet de gérer très facilement l'URL rewriting
- Mais pour fonctionner correctement, nous devons rajouter un .htaccess afin de faire pointer toutes les requêtes dans web/index.php
Autoload
require_once __DIR__.'/../vendor/autoload.php';
- Ce code va include un script php appelé autoload
- L'autoload permet de charger directement les script sans avoir à faire d'include
Instanciation de Silex
$app = new Silex\Application();
- Ce code va instancier Silex
- Nous allons utiliser la variable $app plusieurs fois par la suite
- Il s'agit du cœur de notre site (ou application)
- La syntaxe Silex\ correspond au namespace. Cela permet d'organiser ses fonctions et classes comme si elle étaient dans des dossiers pour éviter les conflits (Tuto)
Première route
$app->get('/hello', function () {
return 'Hello!';
});
- Ce code va demander à Silex de créer une route accessible en tapant hello dans l'URL
- Elle va simplement renvoyer Hello!
- Évidemment, nous allons avoir besoin de récupérer du HTML d'ici peu
Exécuter
$app->run();
- Lance Silex
- run() ne doit être appelé qu'une fois
Debug
Par défaut, en cas d'erreur, Silex ne va pas renvoyer beaucoup d'informations
Il suffit de rajouter le code suivant après l'avoir instancié pour obtenir plus de détails
$app = new Silex\Application();
$app['debug'] = true;
Services
- Par défaut, Silex va tourner avec le minimum de fonctionnalités
- Ces fonctionnalités s'appellent Services
- Nous allons en rajouter par la suite
Services
-
Il en existe pour tout
- Templating
- Gestion des URLs
- Formulaires
- Cache
- Sécurité
- Mails
- Traductions
- ...