Go to content Go to sidebar

Présentation de cakePHP

Mission

Logo de cakePHP
CakePHP s’adresse aux utilisateurs de PHP de tous niveaux et leur permet de créer, de façon structurée et rapide, des applications robustes et facilement maintenables – sans perte de flexibilité.
CakePHP est, à l’origine, inspiré par le framework Ruby On Rails

Historique

En 2005, Michal Tatarynowicz écrit une version minimale d’un framework PHP. Michal veut alors montrer que les nouvelles méthodes apportées par Ruby On Rails sont transposables à PHP. Il remarque que c’est le début d’un bon framework. Il le nomme Cake, et l’ouvre à une communauté de développeurs, qui depuis maintiennent Cake sous le nom de CakePHP.

Nature

CakePHP est donc un projet Libre Open source. Il est distribué sous La licence MIT cela signifie qu’on peut utiliser le code, le copier, le modifier, le fusionner, le publier, le distribuer, le vendre et en changer la licence. La seule obligation est de mettre le nom des auteurs avec la notice de copyright.

Moderne

CakePHP est Moderne. Il intègre et permet l’utilisation d’un ensemble de technologies Ajax ainsi que différents Web Services.
CakePHP est nativement orienté objet, il est donc extensible. Mais, dans ce sens, CakePHP va encore plus loin, il permet une architecture basée sur les plugins, qui sont des minis applications indépendantes ou pas de l’application principale. Toujours dans ce sens, Cake utilise Composants et Helpers qui sont des classes encapsulant un traitement donné pour une réutilisation maximum du code.
Cake a aussi un système de CRUD intégré pour la simplification des requêtes vers la base de données.

Caractéristiques

La principale caractéristique de Cake est la prévalence des conventions sur la configuration. Il suffit à l’utilisateur de respecter ces conventions pour voir une augmentation significative de sa productivité. Ces conventions sont vraiment simples et surtout intuitives. De la structure des fichiers au nommage des champs et tables de la base de donnée en passant par celui des classes, ces conventions ne sont pas choisies au hasard. Elles ont été extraites à partir des meilleures pratiques que les bons développeurs web emploient depuis des années

cakePHP implémente des design patterns ( modèle de conception ) tels que MVC (Modèle-Vue-Contrôleur), ActiveRecord et d’autres..

Elaborant sur le modèle de conception “Modèle-Vue-Contrôleur” qui est la pièce maîtresse autour de laquelle s’articule CakePHP.
Ce modèle divise n’importe quelle application web en trois logiques, une logique de donnée, une logique présentation et une logique de traitement. En fait, il faut la lire dans ce sens: Données -> Traitement -> Présentation.
Les entités qui appartiennent au domaine des données sont appelées des Modèles. Celles appartenant au domaine de traitement sont appelées des Contrôleurs, et enfin pour le domaine de présentation, on parle de Vues.

Concrètement, un Modèle représente souvent une table ou un enregistrement dans la base de données, et ses associations avec d’autres tables. Les modèles contiennent les règles de validation des données qui sont appliqués au moment de l’insertion ou de la mise à jour.
Les Vues sont principalement des fichiers HTML ( mais peuvent être autre chose: RSS, GUI en javascript , etc. ) avec du code qui traduit une logique de présentation.
Les contrôleurs gèrent les requêtes émises du/vers le serveur web, prennent en entrée les données des utilisateurs (GET et POST), appliquent un traitement, utilisent les Modèles pour chercher et sauvegarder les données du/vers les bases de données et autres sources et, pour finir, envoient des données de présentation à une Vue particulière.
L’organisation de ses différentes entités c’est, entre autres, ce que vous apporte CakePHP.
Il faut être très attentif ici, CakePHP n’a pas inventé MVC et il n’est pas le premier framework qui utilise ce concept. CakePHP tout simplement l’intégre bien, et vous allez vous en convaincre tout au long des articles qui vont suivre ;)

Un exemple ( Théorique )

Prenons l’exemple d’une application web très simple : un Livre d’or! Je sais, je sais, c’est trop old-school, mais c’est juste pour illustrer.
Ce Livre d’or offre la possibilité de voir les messages que les visiteurs vous ont laissé. C’est tout simplement une liste. Il y a, par ailleurs, un formulaire, que les visiteurs remplissent pour vous laisser un message.
Essayons de projeter cette application dans le modèle de conception MVC.
Projeter, revient a identifier les différentes entités et la logique de chaque domaine.
Pour pouvoir être affichés, il faudra stocker les messages dans une base de données dans une table qui s’appelle par exemple messages. On peut penser que cette table est composée des champs suivants : numero, titre, nom_visiteur, email_visiteur, message, date_envoi
Ces champs auront des règles de validations : le titre est obligatoire, nom_visiteur obligatoire, email_visiteur optionnel (mais s’il n’est pas vide, il doit être une adresse email valide), le message obligatoire enfin, la date et le numero seront générés automatiquement.
On a donc extrait l’entité “Message” qui fait partie du domaine Modèle.
La liste des messages devra être triée par date d’envoi, cette logique fait partie du domaine Modèle aussi. Pour afficher la liste et le formulaire nous aurons besoin d’une présentation html, deux pages. Ses pages sont des entités du domaine Vue. Dans la première page qui affiche la liste des messages on a une boucle sur les données qui définit de manière alternative la couleur du fond de chaque message (rouge, noir, rouge, noir,..). C’est donc une logique de présentation et fait partie du domaine Vue.
Quand on veut voir la page des messages on consulte par exemple l’url domaine.tld/livre-dor/messages/liste. Le contrôleur messages, prend en entrée l’url liste, et exécute une action, cette action consiste à demander au modèle Message, la liste de tous les messages triés par date d’envoi. Le modèle retourne la liste, le contrôleur, envoit ses données à la Vue qui va afficher la liste. Si la liste des messages est vide, le contrôleur envoit une liste vide. Même principe pour le formulaire, l’utilisateur accède à une url, qui affiche un formulaire, il remplit le formulaire, clique sur envoyer, le contenu de ce formulaire arrive au contrôleur. Ce dernier consulte le modèle pour ajouter un enregistrement dans la table qu’il présente, si les données passent les règles de validations définies dans le modèle, il enregistre les données et retourne au contrôleur une confirmation positive. Le cas contraire, il retourne une confirmation négative, le contrôleur transmet cette information à la vue qui affiche le formulaire pour indiquer les erreurs de validation.
Toute cette logique est une logique de traitement et fait donc partie du domaine Contrôleur, comme vous l’avez sûrement deviné.

Conclusion

Dans cet article on a situé Cake dans le tissu actuel du développement web. Son historique et sa nature ( moderne ). On a vu aussi un modèle de conception très important, autour du quel Cake s’articule qui est MVC.
Voilà, c‘était long, j’avoue. Promis pour les prochains postes, ils seront moins théoriques et plus pratiques. c’est terminé pour aujourd’hui, dans le prochain post, on va voir l’installation de cakePHP.

Portez-vous bien.

Cake !

Comments:

  1. Très bonne initiative ! Bonne continuation :)

  2. C’est LE site que j’attendais, je connais Cake depuis très peu de temps et j’ai commencé à me plonger dedans, c’est exactement le genre de framework que je cherchais depuis longtemps! Longue à à cakepourtous!

  3. Bon site Français sur Cake
    Longue vie a Cake !

  4. salut
    s’il te plait est ce que on peut comprendre le cake même si on connait pas le PHP??
    merci

Aide Textile