Tutoriel CakePHP pour les débutants : Qu'est-ce que le framework CakePHP ?
⚡ Résumé intelligent
Ce tutoriel CakePHP présente le framework PHP open source pour le développement rapide d'applications web basées sur le modèle MVC. Il explique ce qu'est CakePHP, pourquoi les équipes le choisissent, comment l'installer, sa structure de dossiers et sa configuration, les conventions de nommage, et comment le modèle MVC (Modèle-Vue-Contrôleur) est au cœur d'une application CakePHP.

Qu’est-ce que CakePHP ?
CakePHP CakePHP est un framework open source permettant le développement et la maintenance rapides d'applications web PHP. Basé sur l'architecture MVC, il simplifie la création d'applications web PHP en réduisant la quantité de code. CakePHP permet également de séparer la logique métier des couches de données et de présentation.
Pourquoi utiliser le framework CakePHP ?
Voici les principaux avantages de l'utilisation du framework CakePHP :
- CakePHP est de loin l'une des plateformes de développement web les plus rapides.
- CakePHP permet aux développeurs d'acquérir un contrôle amélioré sur la base de données et les requêtes SQL.
- Il permet aux utilisateurs de développer rapidement des applications web robustes sans perdre la flexibilité de leur environnement.
- Support pour PostgreSQL, SQLite, MySQLet PEAR-DB pour ADODB, une base de données abstracbibliothèque de tion.
- Facilite l'optimisation pour les moteurs de recherche URLs.
- Offre des fonctionnalités telles que la validation des entrées et des outils de nettoyage qui sécurisent l'application.
- Modèles utilisant la syntaxe PHP familière.
Comment installer CakePHP
La méthode recommandée pour installer CakePHP est d'utiliser Composer, le gestionnaire de dépendances PHP. Une fois Composer installé, exécutez la commande ci-dessous pour créer la structure d'un nouveau projet.
composer create-project --prefer-dist cakephp/app:~5.0 my_app
La commande télécharge CakePHP et ses dépendances dans un dossier nommé my_app. Vous pouvez ensuite démarrer le serveur intégré avec bin/cake server Ouvrez ensuite http://localhost:8765 dans votre navigateur. Notez que CakePHP 5 requiert PHP 8.1 ou une version ultérieure.
Histoire de CakePHP
Dans ce tutoriel CakePHP, nous allons maintenant aborder l'histoire du framework CakePHP :
| Année | Points de repère |
|---|---|
| 2005 | CakePHP a été développé par Michal Tatarynowicz le 15 avril 2005. |
| 2005 | CakePHP l'a publié sous licence MIT et l'a ouvert à la communauté des développeurs. |
| 2005 | Larry E Masters a pris la relève en tant que développeur principal. |
| 2006 | La version 1.0 a été publiée. |
| 2011 | La version 2 a été publiée. |
| 2014 | La version 3 a été publiée, une réécriture complète des versions précédentes. |
| 2016 | La version 3.3 de CakePHP a été publiée avec de nombreuses fonctionnalités avancées. |
| 2019 | La version 4.0 a été publiée, modernisant ainsi le framework. |
| 2023 | CakePHP 5.0 a été publié et nécessite PHP 8.1 ou une version ultérieure. La version actuelle (en 2026) est CakePHP 5.3.x. |
Caractéristiques de CakePHP
Voici les fonctionnalités importantes de CakePHP.
- Communauté active et conviviale
- Architecture MVC
- Validation intégrée
- Fonctionne depuis n'importe quel répertoire de site web, avec ou sans configuration Apache.
- Moteur de modèles
- Opérations de mise en cache
- Interactions CRUD faciles avec la base de données
- Gestion des composants tels que les e-mails, les cookies, la sécurité, les sessions et les requêtes
- Afficher les assistants pour Javascénario, Ajax, les formulaires HTML, et plus encore
CakePHP - Structure des dossiers
Maintenant, dans ce didacticiel du framework CakePHP, nous allons découvrir la structure des dossiers CakePHP.
Vous trouverez ci-dessous une structure de dossiers de CakePHP :
| Dossier | Description |
|---|---|
| Tests | Ce dossier contient des cas de test pour votre application. |
| tmp | Le dossier tmp stocke les données temporaires. |
| Vendeur | Ce dossier contient l'emplacement d'installation de CakePHP et des autres dépendances de l'application. |
| Webroot | Le répertoire racine du site web stocke tous les fichiers que vous souhaitez rendre accessibles publiquement. |
| Boîte | Le dossier bin contient les exécutables de la console Cake. |
| Journaux | Il contient vos fichiers journaux, qui dépendent de votre configuration de journalisation. |
| Config | Le dossier config stocke les fichiers de configuration utilisés par CakePHP. |
| Plugins | C'est ici que sont stockés les plugins utilisés par votre application. |
| Src | Il contient le code de votre application, notamment les contrôleurs, les entités et les comportements. Le répertoire Locale stocke les fichiers de chaînes de caractères pour l'internationalisation, et le répertoire Model contient les tables, les entités et les comportements de votre application. |
Configuration de CakePHP
CakePHP est livré par défaut avec un seul fichier de configuration. Il vous permet également de le modifier selon vos besoins. Il existe un dossier appelé « config » prévu à cet effet.
| Nom de variable | Description |
|---|---|
| Déboguer | Vous permet de modifier la sortie de débogage de CakePHP. |
| App espace de noms | Vous aide à trouver les cours d'application. |
| App.baseUrl | Dé-commentez ce mot-clé lorsque vous ne souhaitez pas utiliser le mod_rewrite d'Apache avec CakePHP. |
| App.encodage | Permet de définir l'encodage utilisé par votre application. |
| App.base | Il s'agit du répertoire racine de l'application. Si cette valeur est fausse, elle sera détectée automatiquement. |
| App.fullBaseUrl | Nom de domaine entièrement qualifié. |
| Application.webroot | Il s'agit du répertoire racine du site web. |
| App.wwwRoot | Le chemin du fichier vers la racine Web. |
| App.jsBaseUrl | Chemin d'accès au répertoire public js. |
| Chemins d'application | Configurez les chemins pour les ressources non basées sur les classes. |
| App.cssBaseUrl | Il s'agit du chemin web vers le répertoire CSS public situé sous la racine du site web. |
| Sécurité.salt | C'est une chaîne aléatoire utilisée pour le hachage. |
| Actif.timestamp | Cette variable ajoute un horodatage lorsqu'elle est utilisée avec les fonctions d'assistance appropriées. |
Cake-Conventions de dénomination PHP
CakePHP privilégie la convention à la configuration. La convention de nommage permet d'organiser le fonctionnement de l'application web. Ainsi, les noms de fichiers composés de plusieurs mots doivent être séparés par un tiret bas (« _ ») et les noms de classes doivent utiliser la notation camelCase.
Les composants MVC doivent respecter la syntaxe ci-dessous :
| Nom du fichier | Nom du cours | Nom de la classe de base | Lieu | |
|---|---|---|---|---|
| Modèle | Nom de la table au singulier avec l'extension .php, ex. : order.php | Le nom du fichier en camelCase, ex. : Order | Modèle d'application | /app/modèles |
| Contrôleur | nom_de_table_controller avec l'extension .php, ex : orders_controller.php | Le nom de la table suivi de « Controller », ex. : OrdersController | Contrôleur d'application | /app/contrôleurs |
| Consultation | Le nom de l'action dans le contrôleur avec l'extension .ctp, par exemple : add.ctp | Pas de classes ; une vue contient des balises HTML et du PHP. | /app/views/nom du contrôleur |
Configuration des bases de données
CakePHP vous permet de configurer la base de données dans le config/app.php fichier. Il fournit une connexion par défaut avec des paramètres prédéfinis que vous pouvez modifier selon vos besoins.
Les paramètres importants sont donnés ci-dessous :
| Paramètres | Description |
|---|---|
| port (facultatif) | Le port TCP ou le socket Unix utilisé pour se connecter au serveur. |
| Fuseau horaire | Fuseau horaire du serveur à définir. |
| Programme | Il vous aide à spécifier le schéma que vous pouvez utiliser. |
| unix_socket | Utilisé par les pilotes pour se connecter via des fichiers de socket Unix. |
| clé_ssl | Il s'agit du chemin d'accès au fichier de clé SSL. |
| ssl_cert | Il s'agit du chemin d'accès au fichier de certificat SSL. |
| ssl_ca | Il s'agit du chemin d'accès au fichier de l'autorité de certification SSL. |
| Historique | Ce terme vous aide à effectuer la journalisation des requêtes. |
| Init | Une liste de requêtes qui doivent être envoyées au serveur de base de données chaque fois que la connexion est créée. |
| Identifiants de citation | Définissez cette option sur « vrai » si vous souhaitez utiliser des mots réservés ou des caractères spéciaux. |
Comment fonctionne MVC dans CakePHP ?
Dans ce tutoriel sur le framework CakePHP, nous allons maintenant apprendre comment fonctionne le modèle MVC avec CakePHP.
Il s'agit d'une méthode dynamique pour construire le mécanisme principal d'une application web. Le modèle, la vue et le contrôleur sont indépendants les uns des autres.

CakePHP divise les opérations en trois parties :
- Modèles : utilisés pour toutes les interactions avec la base de données.
- Vues : utilisées pour toutes les sorties et tous les affichages.
- Contrôleurs : Utilisés pour contrôler le flux de l’application.
Voici les étapes à suivre pour utiliser l'architecture MVC dans CakePHP :
Étape 1) Le client ou l'utilisateur interagit avec la vue.
Étape 2) Cette vue alerte le contrôleur de l'événement spécifique.
Étape 3) Le contrôleur envoie une requête de base de données au modèle et met à jour ce dernier.
Étape 4) Le modèle signale à l'utilisateur qu'il a changé.
Étape 5) La vue reçoit les données du modèle et se met à jour en fonction des données reçues.
Pourquoi utiliser MVC ?
- CakePHP MVC vous aide à séparer la logique métier de la présentation et de la récupération des données.
- Un site est divisé en sections logiques que vous pouvez gérer avec un contrôleur spécifique.
- Lors des tests et du débogage d'une application, tout développeur peut localiser et corriger les erreurs sans avoir accès à l'intégralité du code.
Inconvénients de l'utilisation du framework CakePHP
- La documentation fournie avec CakePHP n'est pas aussi complète qu'elle devrait l'être.
- Pour utiliser CakePHP, le développeur doit mettre à jour les routes par défaut afin de créer des interfaces utilisateur sophistiquées. URLs, ce qui représente plus de travail que certains autres frameworks PHP.
- CakePHP utilise un routage unidirectionnel, contrairement à d'autres frameworks.
- Apprendre le PHP La mise en place d'un framework n'est pas toujours facile pour les débutants.
- Le routage unidirectionnel constitue un autre inconvénient par rapport à des frameworks tels que Ruby on Rails.
