CakePHP c’est du gateau !

CakePHP c’est du gateau !

sommaire :

  1. CakePHP : Qu'est ce que c'est ?
  2. Organisation et configuration de cakePHP
  3. Ajouter du contenu
 

Si vous avez bon appétit le framework CakePhp est fait pour vous ! :) Pour le mettre en place ce ne n’est vraiment pas compliqué, nous avons juste à suivre la recette pour faire un site solide.

CakePHP : Qu’est ce que c’est ?

CakePHP est un framework PHP gratuit, Open Source et reposant sur le modèle MVC. Il dispose de différents outils pour développer rapidement vos applications PHP, sans avoir à réinventer la roue pour chacune d’entre elles.

Installation de CakePHP :

Pour installer CakePHP, allez sur le site de CakePHP et téléchargez la dernière version.

cakephp

cakephp

Décompresser, le dossier téléchargé dans votre répertoire web. Dans WampServer, il faut placer les différents éléments dans le répertoire www/monProjet/.

Votre projet sera accessible à l’adresse http://localhost/monProjet/ et affichera l’écran suivant :

cakephp

Vous vous demandez qu’est c’est que tout ça et comment faire. C’est ce que l’on va voir.

Cake PHP vous demande de changer la valeur du paramètre « Security.salt », cette valeur correspond au grain de sel, un paramètre pour améliorer la sécurité.
Il vous demande aussi de configurer le fichier de base de données.
Pour éditer la page, il vous demande de créer home.ctp et default.ctp.

Organisation et configuration de cakePHP

CakePHP est organisé de la manière suivante :

  • Le dossier app : contiendra les fichiers de votre application.
  • Le dossier cake : contient les fichiers propres de cakePHP, c’est le noyau du système. Il n’est pas conseillé de les modifier.
  • Le dossier vendors : contiendra les plugins de cakePHP.

Pour configurer cakePHP, il faudra modifier certains fichiers présents dans le dossier app. Les fichiers de configuration sont dans app/config.
Pour Modifier le paramètre « Security.salt », il faut modifier le fichier core.php, à la ligne suivante :

Ligne 151 : Configure::write(‘Security.salt’, ‘DyhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi’);

Il est suffisant de modifier certaines lettres ou chiffres au hasard de la chaine incompréhensible suivante « DyhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi ».

cakephp

cakephp

Pour configurer la connection à la base de données, il faut renommer le fichier suivant « database.php.default » en « database.php » et modifier les lignes suivantes :
Lignes 81 à 89 :

var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
);

CakePHP vous demande de créer ces fichiers « home.ctp » et « default.ctp ». Ces Fichiers sont les vues utilisées par cakePHP, ils affichent donc vos page web. Ils faut créer le fichier « home.ctp » dans app/views/pages et « default.ctp » dans app/views/layouts.

Votre navigateur vous affiche maintenant une page blanche.

Ajouter du contenu

Organisation des vues :
layouts : contenant des pages, son contenu sera :

<html>
<head>
<title>Ma page</title>
</head>
<body>
<?php echo $content_for_layout; ?>

</body>
</html>
    pages : contenu de votre page

Donc dans default.ctp vous aurez la structure html globale de votre page et dans home.ctp vous aurez votre page d’accueil de votre site.
Les fichiers ctp ont du contenu mêlant php et html. Pour le php, on fait juste de l’affichage de variables assignées dans le controller ou appel à des fonctions d’affichage. Je vous le concède, ce n’est pas super.

    Gestion du contenu :

Pour le moment, il n’y a pas d’assignations de faites, le contenu n’est pas dynamique. Il faut les faire dans le controller. Les vues contenues dans pages sont gérées par le fichier pages_controller.php.
Les fichiers controller sont des classes qui étendent la classe AppController.
Pour avoir du contenu dynamique dans le dossier pages de views, il faut modifier le fichier routes.php dans app/config. Ce fichier définit la home page de votre site (son controller, sa méthode et la vue) et définit le controller et la méthode à utiliser pour un dossier donné dans views.

Nous allons commenter la ligne suivante :
Router::connect(‘/pages/*’, array(‘controller’ => ‘pages’, ‘action’ => ‘display’));

Dans views le dossier contenant votre page est pages, votre controller sera donc pages_controller.php et la classe sera PagesController

class PagesController extends AppController {

/**
* définir le nom du contrôleur
*
* @var string
* @access public
*/
var $name = 'Pages';

/**
* les assistants peuvent vous aider à créer des formulaires, des fonctionnalités
* AJAX, de paginer les données du modèle ou à délivrer des flux RSS
*
* @var array
* @access public
*/
var $helpers = array('Html');

/**
* modèle à utliser
*
* @var array
* @access public
*/
var $uses = array();

function display() {
$path = func_get_args();

$count = count($path);
if (!$count) {
$this->redirect('/');
}
$page = $subpage = $title = null;

if ( !is_null($path[0])) {
$page = $path[0];
}
if (!is_null($path[1])) {
$subpage = $path[1];

if ( !is_null($path[$count - 1])) {
$title = Inflector::humanize($path[$count - 1]);
}
$this->set(compact('page', 'subpage', 'title'));
$this->render(join('/', $path));
}
function mapage() {

//votre traitement
$sMavariable = 'Voici ma page';
//Mon assignation
$this->set('sMaVariableVue',$sMavariable);
}
}

Votre variable sera assignée dans la view de même nom que la méthode c’est à dire dans mapage.ctp
Votre fichier views/pages/mapage.ctp sera :

<?php echo $sTitrePage; ?>

Bien sûr, vous pouvez utiliser du code html pour afficher votre contenu.
Voilà votre première page est créée, si vous avez des questions n’hésitez pas à poster un commentaire :)

Note de l'article




1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, moyenne: 2,20 max : 5)
Loading ... Loading ...

  1. rushy Says:

    Bien, j’ai suivie le tuto, c’est rapide! mais c’est compréhensible en y réfléchissant, seulement. Dans le même flop, j’ai une erreur de controller

  2. pamou Says:

    Je ne vais pas être trop méchant, mais ton tuto est en partie faux :
    -La première page ne correspond pas a ça, tu n’a pas de design car tu n’as pas activer le mod rewrite dans apache.
    -Tu n’as pas besoin de créer un home.ctp dès le début, tu vas un peu vite, ce fichier tu le créer que lorsque tu commence a créer une app.
    Et puis ton controller me paraît un peu gros pour ce qu’il permet de faire ^^
    Voila
    A+

Donner votre avis :