19
Une introduction Par Padraig Galvin

Cakephp

Embed Size (px)

DESCRIPTION

PHPotes #4: présentation et échanges autour du framework CakePHP.

Citation preview

Page 1: Cakephp

Une introductionPar Padraig Galvin

Page 2: Cakephp

Présentation du framework

● Architecture Model View Controller (MVC)● Programmation orientée objet (OOP)● Crée en 2005 (pour PHP 4.3)● Inspirée de Ruby on Rails

– Convention over configuration– DRY : don't repeat yourself

● Licence MIT (open source)● Projet actif avec des mise a jour fréquente● PHP version 5.2.8 +

Page 3: Cakephp

Caractéristiques

● Validation et assainissement des données simple● Gestion des associations entre les données

automatique● Système de templates avec des layouts, éléments

réutilisables et helpers● Composants et utilitaires intégrés pour gérer la cache,

les emails, cookies …● Sessions, authentification et contrôle d'accès● Internationalisation (i18n) et localisation (i10n) ● Échafaudage et génération de code

Page 4: Cakephp

Structure du répertoire

/app/Config/Console/Controller/Lib/Locale/Model/Plugin/Test/Vendor/View/tmp/webroot

/lib/Cake

/plugins/vendors

← Votre application

← Cœur de CakePHP

← Répertoire publique : CSS, JS, images …

← Fichiers temporaire : cache, logs …

← Configuration : routage, base de donné, sessions … ← Scripts CLI/Shell (Cron jobs).

← Traductions Gettext (fichiers PO).

← Unit tests (PHPUnit).

Page 5: Cakephp

Les conventions

Route /articles /articles/addGET / POST

/articles/edit/36

ControllerClass: ArticlesController

File: app/Controller/ArticlesController.php

Action (method) index() add() edit($id)

Viewapp/View/Articles/

index.ctpapp/View/Articles/

add.ctpapp/View/Articles/

edit.ctp

ModelClass: Article

File: app/Model/Article.php

Database table articles

Page 6: Cakephp

Un simple exemple

Page 7: Cakephp

Exemple d'application :

Le schémaclients

idnameemailcreatedmodified

tickets

idclient_iddescriptioncreatedmodified

tags

idname

tags_tickets

idtag_idticket_id

Page 8: Cakephp

Exemple d'application :

Les modèles

/app/Model/Client.php

/app/Model/Tag.php

/app/Model/Ticket.php

Page 9: Cakephp

Exemple d'application :

Les relations

/app/Model/Client.php

/app/Model/Tag.php

/app/Model/Ticket.php

Page 10: Cakephp

Exemple d'application :

Validation de donnée

/app/Model/Client.php

alphaNumeric betweenblankbooleancccomparisoncustomdatedatetimedecimalemailequalToextensionfileSizeinListipluhn

maxLengthmimeTypeminLengthmoneymultiplenaturalNumbernotEmptynumericphonepostalrangessntimeuploadErrorurluserDefineduuid

Règles de validation disponibles

Page 11: Cakephp

Exemple d'application :

Liste des clients (index)

/app/Controller/ClientsController.php/app/View/Client/index.ctp

example.com/clients

Un petit test

/app/View/Client/index.ctp

find(string $type, array $params)

firstallcountlistthreadedneighbors

conditionsrecursivefieldsorderlimit...

Page 12: Cakephp

Exemple d'application :

Afficher un client (view)

/app/View/Client/view.ctp

example.com/clients/view/3

Un petit test/app/Controller/ClientsController.php

/app/View/Client/view.ctp

Page 13: Cakephp

Exemple d'application :

Ajouter un client (add)/app/Controller/ClientsController.php

/app/View/Client/add.ctp POST : example.com/clients/add

/app/Controller/ClientController.php

Les données

Page 14: Cakephp

Exemple d'application :

Ajouter un client (add)/app/View/Client/add.ctp - vues alternatifs

Minimal : Précis :

HTML généré :

HTML généré :

Page 15: Cakephp

Exemple d'application :

modifier un client (edit)/app/Controller/ClientsController.php /app/View/Client/edit.ctp

Page 16: Cakephp

Exemple d'application :

supprimer un client (delete)/app/Controller/ClientsController.php

Lien pour supprimer

Page 17: Cakephp

Astuces et conseils

● Commencez par les tutoriels de la documentation officielle

● Prenez le temps de réfléchir à votre schéma de base de données

● Utilisez bake avec des templates personnalisé● Ne pas réinventez la roue, surtout pour la

sécurité● Respectez les conventions !

Page 18: Cakephp

Version 3.0

● PHP version 5.4 +● Installation avec Composer (http://getcomposer.org/)● Namespaces● Modèle amélioré avec données en forme d'objet● Configuration consolidée● Et beaucoup plus …

Page 19: Cakephp

Ressources

● Sites et téléchargements :

– http://cakephp.org

– http://www.cakephp-fr.org/● Le « Cookbook » (documentation) :

– http://book.cakephp.org/2.0/fr/

● Support :

– https://groups.google.com/forum/#!topic/cakephp/

– http://stackoverflow.com/tags/cakephp

– irc://irc.freenode.net/cakephp

● Code source :

– https://github.com/cakephp/cakephp