Apéro ! PHP …
Benjamin Lampé[email protected]@bybenjii
CakePHP- Framework PHP Open Source
- Disponible en version 3 depuis 2015
- Convention over configuration
- Les différents modules peuvent être
utilisés séparément
- Object-Relational Mapping
- Permet de convertir des données
issues de bases relationnelles en
objets
- Et vice-versa
Orm
De base avec le Framework : - composer create-project cakephp/app my_app
Ou seul :- composer require cakephp/orm
CakePHP Orm
ArchitectureDatabase
Connexion Dialect Type
use Cake\Datasource\ConnectionManager;
ConnectionManager::config(’default’, [ ’className’ => ’Cake\Database\Connection’, ’driver’ => ’Cake\Database\Driver\Mysql’, ’database’ => ’test’, ’username’ => ’root’, ’password’ => ’secret’
]);
Connexion
ArchitectureORM
Table(+ Behavior)
Entity Query(+ ResultSet)
Une tablenamespace App\Model\Table;
use Cake\ORM\Table;
class ArticlesTable extends Table{
}
Une entiténamespace App\Model\Entity;
use Cake\ORM\Entity;
class Article extends Entity{
}
use Cake\ORM\TableRegistry;
$articles = TableRegistry::get('Articles'); $query = $articles->find();
foreach ($query as $row) { echo $row->title;
}
Exemple rapide
- Une application simple, des villes,
des associations, des subventions
(#troll).
- Chaque association appartient à une
ville.
- Chaque association peut avoir une
ou plusieurs subventions.
Exemple
- associations/
- subventions/
- villes/
Exemple
AssociationsDans la BDD cette fois ci ..
- hasMany
- belongsTo
- belongsToMany
Récupérer une entité
$this->Articles->get(3)
Ajout, modif, ..$this->Articles->save($article)
- Si $article->id => modif
- Si !$article->id => ajout
Requêtes
- La liste des associations
- Le nombre d’associations par ville
- Toutes les subventions d’une ville
- Finder, finder, finder
- Behaviors
Faire mieux ?
Api, vous avez dit Api ?
La cerise sur le gâteau
Apéro …PHP !