Table of Contents : Le Manuel

Débuter avec CakePHP

Patty-Cake, Patty-Cake... (référence à une chanson enfantine)

Préface

Bienvenue au paradis du développement web !

Si vous lisez la préface d'un guide technique, vous avez probablement du temps à perdre. Nous ne sommes pas des célébrités et ce qui vous intéresse, c'est le contenu, la matière, passez donc cette rubrique superflue et plongez au coeur du sujet !

Public concerné

Pour lire ce manuel, vous devez être un minimum familiarisé avec le langage PHP. Des notions de programmation orientée objet pourront aussi vous être utiles, même si je pense que les chapîtres introductifs peuvent constituer une forme d'initiation. Ceci étant dit, ce contenu est rédigé pour des développeurs de tous niveaux de compétence qui souhaitent créer rapidement et joyeusement des applications robustes et pérennes.

J'ajoute que certains chapîtres abordent des techniques qui dépassent largement le cadre de ce manuel. Administration serveur, AJAX, Javascript, etc. seront abordés par endroits, mais pour l'essentiel, nous allons nous concentrer sur CakePHP.

Introduction à CakePHP

Qu'est-ce que CakePHP ? Pourquoi l'utiliser ?

CakePHP est un framework de développement rapide pour PHP, gratuit et open-source. C’est un ensemble de briques élémentaires pour les programmeurs qui créent des applications web. Notre objectif principal est de vous permettre de travailler de manière rapide et structurée, sans toutefois perdre en flexibilité.

CakePHP rompt la monotonie du développement web. Nous vous offrons tous les outils nécessaires pour ne coder que ce dont vous avez réellement besoin : la logique spécifique de votre application.

Au lieu de réinventer la roue à chaque fois que vous démarrez un nouveau projet, récupérez une copie de CakePHP et concentrez-vous sur les « entrailles » de votre application.

CakePHP dispose d’une équipe de développement et d’une communauté actives, qui donnent au projet une forte valeur ajoutée.

En plus de vous éviter la ré-invention de la roue, l’utilisation de CakePHP implique que le coeur de votre application est bien testé et qu’il peut être constamment amélioré.

Voici un aperçu rapide des caractéristiques que vous apprécierez en utilisant CakePHP :

  • Communauté active et sympathique
  • Système de license souple
  • Compatible avec les versions 4 et 5 de PHP
  • Fonctions CRUD (create, read, update, delete) intégrées pour les interactions avec la base de données
  • Scaffolding (maquettage rapide) d’application
  • Génération de code
  • Architecture MVC
  • Dispatcheur de requêtes avec des URLs propres et personnalisables grâce un système de routes
  • Validation intégrée des données
  • Système de template rapide et souple (syntaxe PHP avec des Helpers)
  • Helpers (assistants) de vue pour AJAX, JavaScript, formulaires HTML...
  • Components (composants) intégrés : Email, Cookie, Security, Session et Request Handling
  • Système de contrôle d’accès ACL flexible
  • Nettoyage des données
  • Système de cache souple
  • Localisation et internationalisation
  • Fonctionne sur n’importe quelle arborescence de site web, avec un zest de configuration Apache pas très compliquée

Où trouver de l'aide ?

Le "Cookbook"

http://book.cakephp.org

Vous avez commencé au bon endroit. Ce manuel devrait probablement être le premier endroit où aller pour trouver vos réponses. Tout comme de nombreux projets open source, nous accueillons de nouvelles personnes régulièrement. Faites de votre mieux pour répondre à vos interrogations par vos propres moyens. Les réponses peuvent mettre un certain temps à venir, mais elles demeureront – et vous nous allègerez la tâche pour le support. Le manuel et l'API ont tous les deux une version en ligne

 

L'API

http://api.cakephp.org/1.2

Droit au but et tout droit sortie de l'équipe de développement, l'API de CakePHP(Application Programming Interface) est la documentation la plus accessible pour comprendre les moindres rouages du framework. Elle fait directement référence au code, alors remuez vos méninges.

 

Le channel IRC

#cakephp @ irc.freenode.net

Si vous êtes coincés, appelez nous sur le canal IRC de CakePHP. Une personne de l'équipe de développement sera sûrement là. Nous serons heureux d'avoir de vos nouvelles, que vous ayez besoin d'aide, que vous vouliez trouver des utilisateurs dans votre coin ou que vous vouliez nous donner votre nouvelle voiture de sport.

 

La "Bakery"

http://bakery.cakephp.org

La "Bakery" de PHP est le centre de documentation pour tout ce qui touche à CakePHP. Jetez un coup d'oeil pour les tutoriels, études de cas et les exemples de code. Une fois que vous vous serez habitués à CakePHP, connectez vous et partagez votre savoir avec la communauté et gagnez une gloire et une fortune immédiate.

 

La Forge Cake

http://www.cakeforge.org

La Forge Cake est une autre ressource pour les développeurs que vous pouvez utiliser pour héberger vos projets CakePHP et les partager avec les autres. Si vous cherchez (ou si vous voulez partager) le composant ultime et le plug-in qui tue, passez voir la Forge Cake.

 

Le site officiel Cake PHP

http://www.cakephp.org

Le site officiel CakePHP est toujours un endroit merveilleux à visiter. Il contient des liens vers les outils les plus utilisés par les développeurs, des vidéos, des occasions de donner votre argent et des fichiers à télécharger.

 

Le Groupe Google

http://groups.google.com/group/cake-php

CakePHP possède aussi un groupe google très actif. Il peut être une ressource formidable pour retrouver des réponses anciennes, les questions les plus courantes ou pour résoudre un problème .

 

Comprendre le modèle M-V-C

Vue d'ensemble

Les applications CakePHP bien écrites suivent le motif de conception (design pattern) logiciel MVC (Modèle-Vue-Contrôleur).

Programmer en utilisant MVC sépare votre application en trois parties principales. Le « modèle » représente les données de l’application, la « vue » fournit une présentation des données du modèle et le « contrôleur » se charge d’orienter les requêtes effectuées par les utilisateurs.

Figure 1

Figure 1: Une requête MVC basique

La figure 1 montre un exemple d’une requête MVC « sommaire » avec CakePHP. Pour illustrer mon propos, laissez-moi vous dire qu’un utilisateur nommé Ricardo a simplement cliqué le lien « Achetez un Cake personnalisé maintenant ! » sur la page d’accueil de votre application.

  1. Ricardo clique le lien qui pointe vers http://www.example.com/cakes/buy et son navigateur envoie une requête à votre serveur web.
  2. Le répartiteur (dispatcher) analyse l’URL (/cakes/buy) et transmet la requête au contrôleur concerné
  3. Le contrôleur exécute la logique spécifique de l’application. Par exemple, il peut vérifier si Ricardo s’est identifié.
  4. Le contrôleur utilise aussi les modèles pour obtenir l’accès aux données de l’application. Le plus souvent, les modèles représentent une table de la base de données, mais ils peuvent aussi représenter des entrées LDAP, des flux RSS ou des fichiers sur l’ordinateur. Dans cet exemple, le contrôleur utilise un modèle qui récupère, dans la base de données, les derniers achats de Ricardo.
  5. Une fois que le contrôleur a effectué ses traitements « magiques » sur les données, il les transmet à une vue. La vue récupère ces données et les formate pour les présenter à l’utilisateur. Les vues dans CakePHP sont le plus souvent au format HTML, mais une vue pourrait tout aussi bien être, en fonction de vos besoins, un document PDF ou XML, ou bien un objet JSON.
  6. Une fois que la vue a utilisé les données du contrôleur pour contruire une vue de rendu complète, le contenu de cette vue est renvoyé au navigateur de Ricardo.

Presque chaque requête à votre application suivra ce schéma de base. Nous le retrouverons plus tard, dans de nombreux cas particuliers de Cake, gardez-le donc dans un coin de votre esprit tandis que nous poursuivons.

Avantages

Pourquoi utiliser MVC ?

Parce que c'est un vrai motif de conception logiciel éprouvé, qui transforme une application en un ensemble maintenable, modulaire et rapidement développé. Façonner les tâches applicatives dans des modèles, vues et contrôleurs séparés, permet à votre application de se sentir très "à l'aise dans ses baskets". Les nouvelles fonctionnalités sont ajoutées facilement et modifier les anciennes est un jeu d'enfant ! L'architecture modulaire et séparée offre également aux développeurs et designers, la possibilité de travailler en parallèle, avec la capacité de créer rapidement un prototype. La séparation permet aussi aux développeurs de faire des modifications sur une partie de l'application sans affecter les autres.

Si vous n'avez jamais développé une application de cette manière, cela demande un peu de pratique, mais nous sommes certains qu'une fois votre première application construite avec CakePHP, vous ne voudrez jamais revenir en arrière.