SlideShare une entreprise Scribd logo
{{
Introduction à CakePHP
Aurélien Vairet et Pierre Martin
{{ Qui sommes nous ?
● Aurélien
● Développeur web
● Communauté CakePHP
● Membre AFUP
● Pierre
● Expert CakePHP (CakeDC)
● Geek
● (ex ?) blogueur : http://pierre-martin.fr
@pierremartin
{{ Un framework ?
● un framework est un kit de composants logiciels
structurels, qui définissent les fondations ainsi que les
grandes lignes de l'organisation de tout ou partie d'un
logiciel.
● un framework est conçu en vue d'aider les programmeurs
dans leur travail. L'organisation du framework vise la
productivité maximale du programmeur qui va l'utiliser.
(Wikipedia)
{{ Le framework CakePHP
● A la fois kit de composants et cadre de travail
● Open Source, licence MIT
● Communautaire !
● Orienté RAD
● Inspiré de Ruby on Rails
{{ Un peu d'histoire...
● Avril 2005 : création par Michal Tatarynowicz
● Juillet 2005 : version 0.9, départ de Michal, repris par
Larry Masters et Kamil Dzielinski, rejoints par Nate Abele
et Garret Woodworth
● Mai 2006 : CakePHP 1.0 est publié
● 2007 : sortie v 1.1
● Décembre 2008 : Cake 1.2 stable
● Octobre 2009 : scission → Lithium
{{ Un peu d'histoire...
● Décembre 2009 : Cake 1.3 bêta, migration Github, forte
implication de la communauté
● Avril 2010 : 1.3.0 stable
● Versions actuelles : 1.2.8 / 1.3.5
● 2011 : CakePHP 2.0 ?
{{ Quelques chiffres...
● Fin 2009 : 1 million de téléchargements depuis origine
● 305 000 l. de code (160 000 l. commentaires)
● 21 500 commits
● 45 contributeurs directs
● 15 000 membres sur le Google Group
● 900 membres sur le forum FR
● doc disponible en 25 langues
{{ Ressources
Officielles
● cakephp.org
● Bakery (bakery.cakephp.org)
● CookBook (book.cakephp.org)
● CakeQS (ask.cakephp.org)
● API (api.cakephp.org)
● github.com/cakephp
{{
● cakephp.lighthouseapp.com/home
● Google group (groups.google.com/group/cake-php)
● irc @freenode (#cakephp)
Francophones
● cakephp-fr.org
● forum.cakephp-fr.org
● irc @freenode (#cakephp-fr)
● formation-cakephp.com
{{ Références
{{ Références
{{ Références
{{ Références
{{ Références
{{ Philosophie
● Convention over configuration
● DRY
● "Automagie"
● Souplesse et personnalisation
● TDD
{{ Caractéristiques
● Design patterns MVC et Active Record
● Compatible PHP 4 et 5
● Fonctions CRUD intégrées
● Scaffolding
● Génération de code
● URL personnalisées : Routes
● Validation, nettoyage et sécurisation des données
● Authentification et contrôle d'accès (ACL)
{{ Caractéristiques
● Cache : fichier, APC, Xcache, MemCache
● Localisation et internationalisation
● Pagination
● Ajax, Javascript, Formulaires...
● Email, Cookie, Security, Session...
● Tests unitaires (SimpleTest)
● Services Web REST...
{{ Modèles
● Logique métier : objets et données
● Accès aux données (find)
● Enregistrement (save - saveAll)
● Suppression (delete)
● Validation
● Callbacks (beforeFind, afterSave, etc.)
{{ Sources de données
● liens entre les modèles et la source de données qu'ils
représentent
● le + souvent BDD relationnelle
● annuaire LDAP, API, fichiers XML ou CSV
● support natif MySql(i), MSSsql, Oracle, Postgres, Sqlite
● support communautaire AdoDb, Db2, Firebird, ODBC,
Sybase, Pdo, etc.
{{ Comportements
● Extensions des modèles
● Logique partagée mais non directement métier
● Collection de fonctionnalités (Mixin) avec des callbacks
{{ Contrôleurs
● Logique applicative
● Répondent aux requêtes
● Appel aux modèles
● Interactions avec les vues
● Contrôle du flux
● Callbacks (beforeFilter, beforeRender)
{{ Composants
● Extensions des contrôleurs
● Regroupements de logique applicative
● Évite de dupliquer fonctionnalités (DRY)
{{ Vues
● Logique d'affichage
● Correspondent à une action d'un contrôleur
● Templates HTML avec un soupçon de logique PHP
● XML, JSON, CSV...
● Layouts
● Elements
● Thèmes
● Vues Média (fichiers binaires)
{{ Assistants
● Extensions des vues
● Classe encapsule logique de présentation
● Partage de fonctionnalités (DRY) entre vues, layouts et
elements
{{ Requête CakePHP
{{
CUISINONS !
{{ Installation
Ingrédients
● Un serveur web, Apache, mais aussi IIS, Lighttpd, nginx
● PHP 4.3.2 >> PHP 5.3
● Une base de données (pas obligatoire techniquement) :
Mysql(i), Oracle, SQLServer, Postgres, SQLite
Préparation
● Téléchargement ou clone sur Github
● Copier les fichiers dans le webroot (ou autre)
{{ Fichiers de App
{{ Conventions
● Nom de la table : recettes (PK : id, FK : auteur_id)
● Nom du modèle : Recette (app/models/recette.php)
● Nom du contrôleur : RecettesController
(app/controllers/recettes_controller.php)
● Nom du fichier de vue : index.ctp
(app/views/recettes/index.ctp)
http://www.example.com/cakephp/recettes/index
{{ Configuration
● Automatisée / Assistée si génération du code
● Base de données (config/database.php)
● config/core.php
● Security.salt
● Debug
● webroot/index.php
{{ Du code !
Microblog
● Création de l'application
● Configuration (très peu !)
● Base de données
● Un peu de magie
● Associations
● Authentification
● Vues
{{ Création de l'application
● Ligne de commande
$ cake bake microblog
Fait beaucoup de choses pour nous !
● Manuellement
● Dossier /app
{{
{{ Base de données
{{ Un peu de magie
● cake bake all
● Demande à CakePHP de générer TOUT le code pour
nous
● Modèles, Contrôleurs, Vues, Tests, Café
● En pratique : cake bake
● Templates personnalisables
{{ Scaffolding
● Prototypage des actions / vues CRUD
● Aucun fichier créé
● Validation des modèles initiaux (conventions)
{{ Associations
● Tweet belongsTo User
● User hasMany Tweet
● User hasAndBelongsToMany Follower
● User hasAndBelongsToMany Following
● Nous n'avons pas suivi les conventions :(
users_users
● … parfois c'est mieux !
{{ Associations
public $belongsTo = array(
'User' => array(
'counterCache' => true,
'dependent' => true
)
);
{{ Associations
public $belongsTo = array(
'User' => array(
'counterCache' => true,
'dependent' => true
)
);
public $hasMany = array('Tweet');
{{ Associations
public $belongsTo = array(
'User' => array(
'counterCache' => true,
'dependent' => true
)
);
public $hasMany = array('Tweet');
public $hasAndBelongsToMany = array(
'Follower' => array(
'className' => 'User',
'joinTable' => 'follow',
'foreignKey' => 'user_id',
'associationForeignKey' => 'follower_id'
),
'Following' => array(
'className' => 'User',
'joinTable' => 'follow',
'foreignKey' => 'follower_id',
'associationForeignKey' => 'user_id',
),
);
{{ Authentification
● AuthComponent
● Behavior => Model / Component => Controller / Helper => View
● Conventions = Peu de configuration
● Modèle : User
● Contrôleur : UsersController
● Champs : username / password
● Cryptage : sha1
{{ Authentification 1/3
class AppController extends Controller {
public $components = array('Auth', 'Session');
}
● Inclusion du composant
{{ Authentification 2/3
class UsersController extends AppController {
// […]
public function login() {
// Nous n'avons besoin de rien faire, merci Cake !
}
public function logout() {
$this->Session->destroy();
$this->Session->setFlash('Vous êtes déconnecté');
$this->redirect($this->Auth->logout());
}
// [...]
}
● Création des actions login() et logout()
{{ Authentification 3/3
class UsersController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allowedActions = array('index', 'view', 'add');
}
public function edit() {
$id = $this->Auth->user('id');
if (!empty($this->data)) {
$this->data['User']['id'] = $id;
// […] Sauvegarde
} else {
// […] Lecture
}
}
}
● Implémentation de notre logique !
{{ Vues
{{ Vues
{{ Vues
<div class="users form">
<?php
echo $this->Form->create('User');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end(__('Submit', true));
?>
</div>
<div class="actions">
<h3><?php __('Actions'); ?></h3>
<ul>
<li><?php
echo $this->Html->link(__('List Users', true), array('action' => 'index'));
?></li>
</ul>
</div>
{{ Fork me!
● https://github.com/cakephp-fr/microblog
● Détail commit par commit
● Encore plus de choses ?
● Nous attendons vos suggestions !
● Ajax, MongoDb, I18n, ?
● contact@cakephp-fr.org
● Feedbacks : Joind.in (ou autre !)
{{ Bon appétit !

Contenu connexe

Tendances

Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
guest6c050e
 
Zend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesZend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modules
Vincent Blanchon
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
kadzaki
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
Jean-Marc Fontaine
 
Cours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partieCours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partie
kadzaki
 
Introduction à Zend Framework
Introduction à Zend FrameworkIntroduction à Zend Framework
Introduction à Zend Framework
Gauthier Delamarre
 
Cours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partieCours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partie
kadzaki
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
Abdoulaye Dieng
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
Philippe Gamache
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
Romain Cambien
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
Noel GUILBERT
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
Abdoulaye Dieng
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
Abdoulaye Dieng
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
Abdoulaye Dieng
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
HamdiBaklouti
 
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
cornnery
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkHugo Hamon
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
 

Tendances (20)

Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Zend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesZend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modules
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
Php
PhpPhp
Php
 
Cours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partieCours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partie
 
Introduction à Zend Framework
Introduction à Zend FrameworkIntroduction à Zend Framework
Introduction à Zend Framework
 
Cours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partieCours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partie
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 

En vedette

Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
Abdelkader Rhouati
 
de Google Maps à OpenStreetMap
de Google Maps à OpenStreetMapde Google Maps à OpenStreetMap
de Google Maps à OpenStreetMap
Frédéric Rodrigo
 
3.2 Les Infrastructures de données spatiales régionales développées dans le p...
3.2 Les Infrastructures de données spatiales régionales développées dans le p...3.2 Les Infrastructures de données spatiales régionales développées dans le p...
3.2 Les Infrastructures de données spatiales régionales développées dans le p...
grisicap
 
Installation apache mandriva
Installation apache mandrivaInstallation apache mandriva
Installation apache mandriva
Majid CHADAD
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
Majid CHADAD
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issameAMAL Issame
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoosejeromegn
 
Bases de données spatiales
Bases de données spatialesBases de données spatiales
Bases de données spatiales
Guillaume Matheron
 
Bases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISBases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGIS
Omar El Kharki
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google mapsVisionGÉOMATIQUE2012
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
Jeremy Gachet
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
Khalid ALLILI
 
Les cartes mentales_v1.0
Les cartes mentales_v1.0Les cartes mentales_v1.0
Les cartes mentales_v1.0
CÔTE Jean-Pascal
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
Jeremy Gachet
 
P4 intents
P4 intentsP4 intents
P4 intents
Lilia Sfaxi
 
P3 listes et elements graphiques avancés
P3 listes et elements graphiques avancésP3 listes et elements graphiques avancés
P3 listes et elements graphiques avancés
Lilia Sfaxi
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
Lilia Sfaxi
 
P6 composants avancés
P6 composants avancésP6 composants avancés
P6 composants avancés
Lilia Sfaxi
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
Lilia Sfaxi
 

En vedette (20)

Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
 
de Google Maps à OpenStreetMap
de Google Maps à OpenStreetMapde Google Maps à OpenStreetMap
de Google Maps à OpenStreetMap
 
3.2 Les Infrastructures de données spatiales régionales développées dans le p...
3.2 Les Infrastructures de données spatiales régionales développées dans le p...3.2 Les Infrastructures de données spatiales régionales développées dans le p...
3.2 Les Infrastructures de données spatiales régionales développées dans le p...
 
Installation apache mandriva
Installation apache mandrivaInstallation apache mandriva
Installation apache mandriva
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issame
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoose
 
Bases de données spatiales
Bases de données spatialesBases de données spatiales
Bases de données spatiales
 
Bases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISBases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGIS
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google maps
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Les cartes mentales_v1.0
Les cartes mentales_v1.0Les cartes mentales_v1.0
Les cartes mentales_v1.0
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
P4 intents
P4 intentsP4 intents
P4 intents
 
P3 listes et elements graphiques avancés
P3 listes et elements graphiques avancésP3 listes et elements graphiques avancés
P3 listes et elements graphiques avancés
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
 
P6 composants avancés
P6 composants avancésP6 composants avancés
P6 composants avancés
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
 

Similaire à Introduction à CakePHP

l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
Florent DENIS
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
Martin Latrille
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
Oxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
Ludovic Piot
 
Monitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et PinbaMonitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et Pinba
Idaf_1er
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
Tugdual Grall
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
XavierPestel
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
Jean-Michel ARMAND
 
Gwt fast overview_v1
Gwt fast overview_v1Gwt fast overview_v1
Gwt fast overview_v1
David Herviou
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
Eric D.
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
Horacio Gonzalez
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
Christophe Villeneuve
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
Clément OUDOT
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training Days
ALTER WAY
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
Horacio Gonzalez
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1Horacio Gonzalez
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
Jean-Pierre Vincent
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à Paris
Chipway
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec Drupal
LINAGORA
 

Similaire à Introduction à CakePHP (20)

l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
Monitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et PinbaMonitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et Pinba
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
 
Gwt fast overview_v1
Gwt fast overview_v1Gwt fast overview_v1
Gwt fast overview_v1
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training Days
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à Paris
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec Drupal
 

Plus de Pierre MARTIN

Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP plugins
Pierre MARTIN
 
Building custom APIs
Building custom APIsBuilding custom APIs
Building custom APIs
Pierre MARTIN
 
Test and API-driven development of CakePHP Behaviors
Test and API-driven development of CakePHP BehaviorsTest and API-driven development of CakePHP Behaviors
Test and API-driven development of CakePHP Behaviors
Pierre MARTIN
 
Recipes for successful CakePHP projects
Recipes for successful CakePHP projectsRecipes for successful CakePHP projects
Recipes for successful CakePHP projects
Pierre MARTIN
 
The CakePHP Media Plugin
The CakePHP Media PluginThe CakePHP Media Plugin
The CakePHP Media Plugin
Pierre MARTIN
 
Internationalizing CakePHP Applications
Internationalizing CakePHP ApplicationsInternationalizing CakePHP Applications
Internationalizing CakePHP Applications
Pierre MARTIN
 

Plus de Pierre MARTIN (6)

Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP plugins
 
Building custom APIs
Building custom APIsBuilding custom APIs
Building custom APIs
 
Test and API-driven development of CakePHP Behaviors
Test and API-driven development of CakePHP BehaviorsTest and API-driven development of CakePHP Behaviors
Test and API-driven development of CakePHP Behaviors
 
Recipes for successful CakePHP projects
Recipes for successful CakePHP projectsRecipes for successful CakePHP projects
Recipes for successful CakePHP projects
 
The CakePHP Media Plugin
The CakePHP Media PluginThe CakePHP Media Plugin
The CakePHP Media Plugin
 
Internationalizing CakePHP Applications
Internationalizing CakePHP ApplicationsInternationalizing CakePHP Applications
Internationalizing CakePHP Applications
 

Dernier

Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 

Dernier (6)

Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 

Introduction à CakePHP