Programmation PHP/CakePHP
Le cadriciel CakePHP
modifierCakePHP est un framework de type Rapid Application Developpement (RAD) utilisant le motif de conception modèle-vue-contrôleur.
Le moyen d'appréhender l'intérêt d'un cadriciel est par l'exemple. Après l'installation nous l'emploierons pour créer un formulaire simple d'enregistrement des données d'un utilisateur (nom, prénom, email, mot de passe) stockée dans une table de base de données. Ensuite, ce formulaire sera amélioré par l'ajout de vérifications et de validation des données. Pour conclure, l'on ajoutera une page d'identification.
Ce chapitre va décrire les grandes étapes d'installation puis de configuration du cadriciel CakePHP dans un but pédagogique. Pour une installation de production la référence reste le manuel de l'éditeur[1].
Prérequis
modifierCoté serveur l'installation nécessite un serveur HTTP comme Apache avec le module de réécriture d'URL activé (rewrite), le langage PHP 5 avec la bibliothèque des sessions et un système de base de données PostgreSQL ou MySQL.
Connaissances
modifier- PHP 5 objet : Programmation PHP/La programmation orientée objet
- Avoir complété : Programmation_PHP/Exemples/Formulaire
- Être au moins débutant en programmation SQL
- Utilisation courante d'une base de donnée relationnelle : Découverte de MySQL, PostgreSQL et Oracle
Outils
modifierInstallation
modifierBase de données
modifierCréez une nouvelle base de données cake_monapp
pour l'utilisateur propriétaire cakedev
:
MySQL :
CREATE DATABASE cake_monapp;
GRANT ALL PRIVILEGES ON cake_monapp.* TO 'cakedev'@'localhost' IDENTIFIED BY 'plop';
PostgreSQL :
CREATE USER cakedev WITH PASSWORD 'plop';
CREATE DATABASE cake_monapp OWNER cakedev;
GRANT ALL PRIVILEGES ON DATABASE cake_monapp TO cakedev;
Dans /cake/app/config/ renommez database.php.default en database.php puis modifiez y les paramètres de connexion à la base de donnée (nom de serveur, nom de base, utilisateur, mot de passe).
/cake/app/config/database.php
:
Pour MySQL :
var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'cakedev',
'password' => 'plop',
'database' => 'cake_monapp',
'prefix' => '');
Pour PostgreSQL :
var $default = array('driver' => 'postgres',
'connect' => 'pg_connect',
'host' => 'localhost',
'login' => 'cakedev',
'password' => 'plop',
'database' => 'cake_monapp',
'prefix' => '');
Configurations
modifierToujours dans /cake_xxx/app/config/ modifiez core.php en changeant la constante CAKE_SESSION_STRING par une chaîne aléatoire, avec par exemple en ligne de commande :
perl -e '@c=("A".."Z","a".."z",0..9);print join("",@c[map{rand @c}(1..36)]),"\n"'
Rendre /cake_xxx/app/tmp accessible en écriture.
$ chmod -R a+x tmp
Vérifiez que le module de réécriture d'URL est activé pour le serveur web Apache :
Vous créerez un nouveau projet qui contiendra la copie locale de l'arborescence sous app/.