CakePHP : comment bien débuter
16/09/2008 | Publié dans cakephp
Le succès de CakePHP s’accompagne fort logiquement d’un afflux de nouveaux développeurs voulant utiliser le framework. Voici quelques pistes pour démarrer au mieux.
A mon avis, le coeur de cible de CakePHP (et sans doute des autres outils du même genre), c’est le développeur PHP qui, après plusieurs applications développées avec ses petites mains, se rend compte qu’il en a marre de réinventer la roue, que certaines taches fastidieuses (par exemple les validations de formulaires, les requêtes d’insertion dans la base de données…) se répètent à chaque nouveau projet, que l’utilisation de bibliothèques externes récupérées à droite et à gauche nuit à l’homogénéité de son code. Si vous ne vous reconnaissez pas dans ce profil, ne passez pas votre chemin, tout reste possible ! Néanmoins, CakePHP impose à mon avis quelques prérequis qu’il est important d’avoir en tête avant de se jeter à corps perdu dans un projet :
- connaître la programmation en PHP : oui, il faut connaître un minimum la syntaxe de PHP pour utiliser CakePHP. Le framework fait plein de choses magiques, génère lui-même du code sans qu’on n’ait rien à faire, mais ne se substitue aucunement à PHP. Les bases se trouvent dans le manuel PHP.
- connaître les bases de la conception d’application et en particulier de la conception de modèles de données. Dès que l’application est un tantinet spécifique et complexe, il faut réfléchir avant de se lancer, impossible d’y couper. Une fois votre base de données bien construite, CakePHP fera son boulot. Un post sur la bakery (en anglais) explique bien l’articulation entre cette tache et le développement avec CakePHP.
- connaître les bases de la programmation à objets. Pas besoin d’être un cador mais il est préférable de maîtriser les concepts de base : héritage, classe, objet, méthode, …
- connaître quelques uns des Design Patterns sur lesquels est fondé le framework est un sérieux plus : MVC, Active Records.
Une fois acquises ces connaissances de base, voici les ressources (avec un accent sur les francophones) qui vous seront essentielles pour démarrer :
- longtemps le point faible de CakePHP dans sa version 1.2, le manuel collaboratif s’enrichit de jour en jour. Il est perfectible, peut-être pas assez progressif et il y a encore quelques zones d’ombre, mais il faut absolument le lire au moins une fois, et le garder sous le coude en référence ensuite. En particulier, le tutoriel du blog est un passage obligé pour découvrir le framework.
- la communauté française se met en place. Elle dispose notamment d’un forum et d’un Google Groupe où vous pourrez discuter et poser des questions.
- le blog Formation CakePHP est la référence francophone en matière de tutoriels clairs et détaillés.
Quand le manuel ne suffit pas, quand Google n’est pas votre ami, voici trois pistes supplémentaires.
- la plus ardue est d’aller lire le code des librairies composant le framework pour comprendre comment la méthode qui vous pose souci fonctionne - problème, il faut comprendre ce code, ce qui n’est pas toujours aisé. Mais l’exercice est toujours formateur.
- la lecture de la documentation de l’API (générée automatiquement et basée sur les commentaires présents dans le code) est plus accessible, mais sa pertinence dépend de celle des commentaires, qui sont parfois laconiques.
- troisième méthode, peut-être plus efficace : la stabilité et la fiabilité du fonctionnement de CakePHP au fil des évolutions est assurée par une multitude de tests unitaires. Outre ces garanties de fonctionnement, ces tests unitaires apportent une extraordinaire documentation par l’exemple sur le “comment ça marche”. Un exemple ? Avant qu’elle ne soit documentée dans le manuel, nous sommes nombreux à avoir découvert le fonctionnement de la puissante classe Set en lisant ses tests unitaires.
Voilà donc un peu de lecture
Derniers conseils : débutants, évitez de vous lancer directement dans une “grosse” application (plus de 10 tables, disons), essayez d’abord de développer votre petite application à vous. Une application simple, facile à modéliser, sur laquelle vous pourrez vous faire la main. Pour James Fairhurst, ça a été une application de gestion de DVDthèque en ligne, et il en a fait un tutoriel en douze épisodes qui commence ici (en anglais).
Et comme on dit par chez nous, happy baking !






