Configuration

Catégorie : Manuel
Cet article est une traduction de Configuration CakePHP

Base de données


Après avoir mis en place votre application CakePHP, Vous pouver constater que sur votre page d'accueil, le message "can't connect to database" s'affiche. Vous devez configurer votre base de données !

Il existe pour cela le fichier /app/config/database.php.default
Commencez par le copier et le renommer en database.php dans le même répertoire.
Vous verrez alors, en bas de votre fichier, ceci :

var $default = array('driver'   => 'mysql',
                     'connect'  => 'mysql_connect',
                     'host'     => 'localhost',
                     'login'    => 'user',
                     'password' => 'password',
                     'database' => 'project_name',
                     'prefix'   => '');


Placez y les valeurs de connection à votre base.
Cake supporte plusieurs drivers :
  • MySQL
  • PostgreSQL
  • SQLite
  • pear-driver (pear-mysql par exemple)
  • adodb-driver
L'option 'connect' vous permets de définir si votre connection doit être persistante ou non. Lisez les commentaires dans database.php.default pour en savoir plus.

Vootre table devra respecter les conventions suivantes :
  • Noms des tables en anglais et au pluriel, comme 'users', 'authors', 'examples', ... Les models correspondant auront eux, des noms singuliers.
  • La clé primaire doit s'appeller 'id'.
  • Les clés étrangères doivent s'appeller nomtable_id. 'articles_id' par exemple.
  • Si vous ajoutez un champ 'created' ou 'modified', Cake le mettra à jour de manière appropriée.
Notez que une seconde configuration, $test est également présente. Vous pouvez l'utiliser en placant, dans votre model, le code suivant :

var $useDbConfig = 'test';
Vous pouvez ajouter autant de configurations que vous le désirez de cette manière.

Configuration globale
La configuration globale de Cake peut être trouvée dans /app/config/core.php. Alors que Cake a adopté une politique anti-configuration, il en faut bien au moins une. Elle est ici !

Il y a peu de données que vous aurez à modifier. En voici cependant la liste :
  • DEBUG : Vous permets d'afficher ou non les messages d'erreur et les requetes SQL. De plus, en mode '0' (production), aucune page d'erreur ne sera affichée. La page /app/views/errors/404.thtml sera affichée à la place. Dans les modes supérieurs, les pages d'erreurs. "missing controller", "missing database", ... seront affichées pour faciliter le déboggage.
  • CAKE_SESSION_COOKIE : Cette option contient le nom du cookie de session permettant d'identifier l'utilisateur.
  • CAKE_SECURITY : Changez cette valeur pour donner votre niveau de vérification de sessions préféré. Cake va supprimer des sessions et attribuer de nouveaux identifiants en fonction de cette valeur.
    • high : Les sessions expirent après 10 minutes d'inactivité et les identifiants sont regénérés à chaque requête.
    • medium : Les sessions expirent après 20 minutes d'inactivité
    • low : Les sessions expirent après 30 minutes d'inactivité
  • CAKE_SESSION_SAVE : Spécifie la manière dont les données de session sont sauvegardées.
    • cake : Les données sont sauvegardées dans le dossier /tmp de votre installation
    • php : Les données sont sauvegardées comme définies dans le php.ini.
    • database : Les données sont sauvegardées dans la base de données définie par default.
Configuration du routage
Le routage vous permet, si mod_rewrite est activé, d'afficher des jolies URL, par défaut de la forme controller/action/param1/param2/... Il permets également d'utiliser Cake sans mod_rewrite.
Les règles de routages sont définies dans /app/config/routes.php
En voici un exemple :

$Route->connect (
    'URL',
    array('controller'=>'controllername',
    'action'=>'actionname', 'firstparam')
);
?>


Ou :
  • URL : Doit contenir une expression régulière contenant l'url générique de la future page
  • controllername : Nom du controller que vous désirez appeller
  • actionname : Nom de l'action à appeller
  • firstparam : Valeur du premier paramètre dans l'action que vous venez de spécifier
Tous les paramètres suivants à firstparam seront passés au controller de la même manière que celui-ci.

Voici un exemple :
Le routage :

$Route->connect ('/blog/:action/*', array('controller'=>'Blog', 'action'=>'index'));
?>


Votre controller :

class BlogController extends AppController
{
 function history ($year, $month=null)
 {
   // .. Display appropriate content
 }
}
?>


Cette action pourra être appellée avec l'url /blog/history/05/june par exemple.
Le 'history' est matché par le :action dans le routage. Le * permet de passer les paramètres au controller. Si on appellait l'url /blog/history/05, notre action ne verrait qu'un seul paramètre qui lui serait passé, 05.

Si vous ne désirez pas modifier le routage par défaut de votre application, vous n'avez pas besoin de modifier ce fichier.



Identification

Statistiques

146 utilisateurs
32 articles
5 connectes

CakePHP-fr

Actualites

PHP 5.2.2 et PHP 4.4.7
L'équipe de développement de PHP ...
Poste le : 04/05/2007


Nouvelles version CakePHP
Deux nouvelles versions de Cake voient le jour ...
Poste le : 06/04/2007


PHP 4.4.6
L'équipe de développement de PHP ...
Poste le : 01/03/2007


Sortie de PHP 5.2.1
L'équipe de développement de PHP ...
Poste le : 09/02/2007


Cake 1.1.13.4450 et 1.2.0.4451alpha
PhpNut nous l'annonce aujourd'hui, les versions...
Poste le : 05/02/2007


Liens