SimpleKit: Framework PHP open-source
SimpleKit est un Framework PHP simple basé sur une séparation en 6 couches des différents éléments qui composent une application web moderne. Cet séparation multi-tiers permet de simplifier la tâche des développeur pendant la phase de développement mais surtout durant la vie active du projet. Ainsi l'utilisation d'un Framework permet d'accélérer les phase de maintenance d'un site.
En informatique les applications découpées en plusieurs couches sont dites multi-tiers. Ainsi le modèle MVC est dit trois- tiers. Le SimpleKit Framework est lui composé de 6 couches distinctes. Ce découpage est peu courant pour un framework PHP et s’inspire de ce qui se fait actuellement dans le monde J2EE. Plus le découpage de l’application est fin et plus sa maintenance est facile. En effet, les couches étant indépendantes il est possible de modifier le code d’une couche sans impacter le bon fonctionnement du reste de l’application. Voici la liste des couches du Framework :
- Application : cette couche permet de gérer plusieurs niveaux applicatifs pour une application. Typiquement la réalisation d’un site internet dynamique nécessite la mise en place de deux espaces distincts : la partie publique et la partie réservée aux administrateurs. Ainsi l’on se retrouve avec deux niveaux applicatifs.
- Modèle : cette couche correspond à la modélisation des données à traiter
- DAO : les Data Acess Object servent d'accès aux données, ce sont eux qui contiennent les requêtes SQL à exécuter pour récupérer un élément du modèle ou bien lister tous les éléments d’un modèle.
- Service : les services contiennent les traitements métier à proprement parlé, il s’agit par exemple de définir les traitements à réaliser lors de la création d’un chauffeur.
- Contrôleur : les contrôleurs servent à récupérer les requêtes effectuées par les utilisateurs, lancer les traitements associés et en afficher le résultat.
- Vue : cette couche correspond aux différents « écrans » qui composent l’application
Dispose de nombreux générateurs
Les générateurs sont des objets qui permettent de créer simplement, sans une seule ligne de code, des éléments basiques d’une page HTML. Ainsi nous disposons de plusieurs générateurs importants :
- Générateur de formulaires : à partir d’une simple définition de la liste des champs, le framework est capable de générer le code HTML du formulaire ainsi que les fonctions de validation des données en JavaScript.
- Générateurs de tableaux (pour listing) : les interfaces d’administration d’applications sont souvent composées de nombreux tableaux présentant la liste des utilisateurs par exemple. La création, « à la main » de tels éléments est particulièrement fastidieuse. Le Framework permet, à partir de définitions sous forme de tableaux, de générer automatiquement ces éléments.
- Système de pagination : Le framework inclut un système de gestion de pagination. La création d’un système de pagination est relativement complexe, son automatisation représente un gain de temps non négligeable.
Dans le cas du SimpleKit Framework ces générateurs permettent également d’effectuer certains traitements PHP. En effet, dans le cas du générateur de formulaire, ce dernier prend également en charge la validation des données côté serveur (validation PHP).
Debug et gestion des exceptions
Le fait d’avoir à disposition des outils de debugage d’une application durant son développement est important et cela est d’autant plus vrai que l’application est complexe. En effet, il faut pouvoir tracer l’exécution de l’application afin de savoir à quel moment celle-ci a « planté ». Le SimpleKit Framework intègre un logger* qui permet de garder une trace des différents traitements effectués par l’application. Ces logs peuvent être affichés en fin d’exécution d’une requête HTTP et/ou enregistrés dans un fichier.
En plus de ce système, l’application gère un système d’exceptions. La gestion des erreurs est un point capital dans le développement d’une application fiable et robuste. Cela permet de limiter les « plantages » de celle-ci et d’afficher un message personnalisé ou bien d’effectuer un traitement particulier lorsque l’erreur survient.
Cache
L'application dispose d’un système de cache permettant de limiter la consommation en ressource de l’application. En effet, lors de deux appels successifs sur la même page (même requête HTTP) celle-ci est régénérée à chaque fois. Les systèmes de cache permettent de garder en mémoire le code HTML généré par l’application lors du premier appel et de l’afficher lors des suivants. Cette technique limite les accès à la base de données et limite la consommation de mémoire liée à l'exécution du code PHP générant la page. Il suffit de nettoyer le cache lorsque l’utilisateur effectue une action qui va en modifier le contenu.
Une implémentation fine de ce système est inclut dans le Framework, elle permet de disposer de plusieurs niveaux de caches, un global et un pour chaque utilisateur. Ce second niveau permet de mettre en cache des pages dont le contenu est variable en fonction de l’utilisateur authentifié.
Autres fonctionnalités
Voici une liste des autres fonctionnalités fortement utiles proposées par le Framework
- Intégration d’un moteur permettant de gérer plusieurs types de base de données (abstraction)
- Système de session / authentification intégré
- Prise en charge de pièces jointes attaché à n’importe quel modèle
- Intégration du Framework Javascript jQuery

