# FuelPHP

FuelPHP est un framework web open-source écrit en PHP implémentant le design pattern MVC$^,$.

## Histoire de FuelPHP

Historique des versions du logiciel :
| Version | Date de sortie |
| 1.0.1 | 23 août 2011 |
| 1.1 | 13 décembre 2011 |
| 1.2 | 3 juin 2012 |
| 1.2.1 | 24 juin 2012 |
| 1.8.2 | 27 juin 2019 |
Le projet FuelPHP a démarré en octobre 2010.
Les principaux contributeurs du projet FuelPHP sont Jelmer Schreuder, Dan Horrigan, Harro Verton, Philip Sturgeon et Frank de Jonge.
Par ailleurs, Philip Sturgeon et Dan Horrigan ont apporté une contribution au framework CodeIgniter.
La première version de FuelPHP (FuelPHP 1.0) a été développée au sein du référentiel Fuel présent sur le site GitHub. Le référentiel FuelPHP fut créé pour le développement de la deuxième version (FuelPHP 2.0).

## Feuille de route

La feuille de route adoptée par l'équipe de développement est la suivante :
* La conception d'un framework reprenant les meilleures idées présentes dans les autres frameworks$^,$.
* Le framework doit posséder des fonctionnalités puissantes, son utilisation doit être facile et son code source doit être concis.
* La prise en compte des orientations souhaitées par la communauté des développeurs$^,$$^,$.

## Architecture

* FuelPHP est écrit pour PHP 5.4+.
* Une arborescence de fichiers en cascade (inspirée du framework Kohana) : son principe est d'organiser l'arborescence des répertoires partiellement à l'image des espaces de noms dédiés aux classes.
* Flexibilité : presque tous les composants du framework peuvent être étendus ou remplacés.
* Modularité : une application web peut être organisée en modules.
* Extensibilité : des extensions peuvent être apportées au framework sous forme de packages$^,$.

## Fonctionnalités

* Un système de routage d'URL.
* Implémentation du design pattern RESTful.
* Implémentation du design pattern MVC$^,$.
* Templates: FuelPHP comprend les moteurs de template (en) Stags (moteur de template spécifique à FuelPHP) et Mustache; de plus, FuelPHP fournit les pilotes pour les moteurs de template (en) Markdown, Smarty, Twig, Haml, Jade et Dwoo.
* Formulaires : FuelPHP fournit un ensemble de fonctionnalités destiné à faciliter le développement des formulaires et des procédures de validation associées.
* Un mapping objet-relationnel (ORM)$^,$.
* Vulnérabilités informatiques: FuelPHP encode les caractères non alphanumériques lors de la génération des pages web, fournit les protections contre les attaques des types CSRF et cross-site scripting, fournit une fonction de filtrage des variables super-globales, et protège des attaques de type injection SQL.
* Le package Auth fournit un ensemble de composants pouvant être utilisé pour le développement des fonctionnalités d'authentification et de gestion des droits d'accès des applications web$^,$. Sentry est un autre package FuelPHP de développement de fonctionnalités d'authentification et de gestion des droits d'accès d'applications web.
* Un système de gestion de mémoire cache.

### Outils

* Profilage de code et débogage: intégration de PHP Quick Profiler.
* Outil de migration de base de données (inspiré du framework Ruby on Rails).
* Scaffolding (inspiré du framework Ruby on Rails, package Oil).
* Tâches (opérations pouvant être exécutées en ligne de commande).
* Tests: intégration de PHPUnit (package Oil).