Template pour projet web basé sur slim 3
.
Pour toutes contribution sur github, merci de lire le document CONTRIBUTING.md.
- Répartition des routes/controlleurs/vues/middlewares.
- Fichier de configuration d'environnement.
- Fonctionnement de twig et du cache.
- Organisation du container pour faciliter l'ajout de nouvelles librairies.
- Fichier
app/config/error_pages.php
pour personnaliser les pages d'erreurs (404, 405, 500). - Commandes gulp pour faciliter le développement front-end.
- Mise en place de middlewares pour le csrf, message flash et sauvegarde des inputs.
- Commande via la console pour vider le cache de twig.
- Commandes via la console pour créer rapidement des controlleurs/middlewares.
- Mettre en place un système de migration de base de données.
- php 5.6+
- extension pdo
- extension mbstring
- slim/twig-view pour la vue.
- catfan/Medoo pour les requêtes SQL.
- respect/validation pour valider les données.
- slim/csrf pour la sécurité des sessions.
- digitalnature/php-ref pour une fonction var_dump amélioré.
- vlucas/phpdotenv pour la configuration de l'environnement.
- robmorgan/phinx pour les migrations.
- symfony/console pour des commandes console.
- Script gulpfile.js (lib nodejs) pour la compilation less/sass/scss et minification des fichiers css/js/images.
Certaines librairies comme le validateur fonctionne sur php5.6
à l'heure ou cette note est écrite, mais depuis peu la vérification php5.6
via travis à été retiré du dépot, si jamais une librairie commence à ne plus fonctionner correctement, merci de bien le signaler dans les issues (si possible préciser à partir de qu'elle version) utiliser php7
est recommandé pour éviter ce genre de soucis.
Via git
$ git clone https://github.com/Fukotaku/fufu
Via composer
$ composer install
Vérifiez que le fichier .env
a bien été créé, il s'agit du fichier de configuration de votre environnement ou vous définissez la connexion à la base de données, l'environnement local
ou prod
et l'activation du cache de twig.
Si jamais le fichier n'a pas été créé, faite le manuellement en dupliquant .env.example
.
Via npm pour le script gulp (optionnel)
$ npm install
Le template utilise une connexion à une base de données avec comme table d'exemple posts
, vous devez donc créer une base de données que vous appelez comme vous le souhaitez, mais il faudra l'indiquer dans votre .env
.
Puis vous utilisez ces commandes phinx
pour effectuer la migration de la table posts
$ vendor/bin/phinx migrate
$ vendor/bin/phinx seed:run
Autoriser le dossier cache
à l'écriture (chmod 775).
Pour bien utiliser ce template pour projet web, il est important de bien connaitre le fonctionnement de Slim 3
et des divers librairies utilisées.
Vous avez à votre disposition, plus haut, les liens vers ces derniers pour en savoir plus.
Le script gulpfile.js
vous permet avec de simple commandes de compiler ou minifier des fichiers utilisés coté front.
Dans le dossier src
, sont disposez les dossiers dédiés au développement front-end dans divers langagues (less, sass, scss, css et js) mais vous pouvez aussi optimiser les images.
Pour pouvoir compiler, minifier et copier ces derniers dans le dossier public
de votre application, il suffit de taper cette commande (après avoir fait un npm install
)
$ gulp build
D'autres commandes sont disponibles, je vous laisse regarder le script pour vous familiarisez.
Le fichier console
vous permet d'utiliser des commandes pour effectuer des actions plus rapidements.
Pour voir la liste des commandes disponibles
$ php console list
Pour vider le cache de twig
$ php console cache:clear
Pour générer un controller ou middleware
$ php console generate:controller TestController
app/Controllers/TestController.php
$ php console generate:middleware TestMiddleware
app/Middlewares/TestMiddleware.php
Pour debugger pendant le développement de votre application, je vous recommande d'utiliser la fonction r()
qui est un var_dump
amélioré.
Pour les requêtes SQL avec medoo
, vous avez la fonction debug()
, error()
ou encore log()
.