Programmation PHP/CakePHP

Un livre de Wikilivres.



Le cadriciel CakePHP[modifier | modifier le wikicode]

CakePHP 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[modifier | modifier le wikicode]

Coté 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 | modifier le wikicode]

Outils[modifier | modifier le wikicode]

Installation[modifier | modifier le wikicode]

Base de données[modifier | modifier le wikicode]

Cré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[modifier | modifier le wikicode]

Toujours 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 :

Configuration de votre EDI[modifier | modifier le wikicode]

Vous créerez un nouveau projet qui contiendra la copie locale de l'arborescence sous app/.

Notes et références[modifier | modifier le wikicode]

  1. http://manual.cakephp.org/chapter/installing