Introduction au microframework Silex - SimplonReunion/developpeur-web GitHub Wiki
"Silex is a PHP microframework for PHP. It is built on the shoulders of Symfony and Pimple and also inspired by sinatra.
A microframework provides the guts for building simple single-file apps. Silex aims to be:
- Concise: Silex exposes an intuitive and concise API that is fun to use.
- Extensible: Silex has an extension system based around the Pimple micro service-container that makes it even easier to tie in third party libraries.
- Testable: Silex uses Symfony's HttpKernel which abstracts request and response. This makes it very easy to test apps and the framework itself. It also respects the HTTP specification and encourages its proper use."
(définition: Silex website)
Objectif
Découvrir Silex et ses possibilités.
Activités
Installer Silex et Explorer les usages du microframework.
Page simple
- Créer une page qui affiche "Hello world"
- Créer 3 pages différentes avec comme route "/blog", "/blog/1", "blog/insert". Pour chacune de ces pages vous pouvez afficher ce que vous voulez dans un premier temps
Page dynamique
- Créer une base de données "silex"
- Créer une table "posts" avec comme champs id, title(varchar), body(text), createdAt(datetime), author(varchar)
- via phpmyadmin (ou un logiciel similaire) insérer 3 posts
- Dans votre application, pour la page avec l'url "/blog" afficher les titres des posts qui se trouvent dans la base de données
- Dans votre application, pour la page avec l'url "/blog/1" afficher le post qui correspond à l'id 1. Bien sûr le paramètre id dans l'url et variable. Si on choisit 2 à la place de 1 il faut afficher le post avec l'idée 2.
- Créer une page pour insérer un post en base de données.
Middlewares
- Si vous ne l'avez pas fait, utiliser un middleware pour la page avec l'url "/blog/1". Le middleware devra récupérer l'id du post et retourner un objet ou un tableau représentant le post désiré.
- Utiliser un middleware pour envoyer un email de confirmation de création de post après avoir créé un post. Cet email devra contenir le titre et le body du post.