Chapitre 7 : Notion de Framework PHP
Framework = cadriciel
Ensemble de conposants logiciels fournissant un cadre de conception
Quelques frameworks connus :
CodeIgniter, Symfony, Laravel, Phalcon, Cake PHP, Zend, Yii
Les frameworks permettent d'intégrer facilement certains concepts ou fonctionnalités dans une application :
Architecture MVC
MVC est un patron de conception (design pattern) permettant de séparer les différentes composantes d'une application suivant leur rôle :
- M = Modèle (logique et classes métier)
- V = Vue (Partie présentation, interface utilisateur)
- C = Contrôleur (Logique applicative, contrôle, synchronisation)
Routage, logique applicative
Mappage objet/relationel
Vues
- Rôle d'affichage uniquement, reçoivent les données du contrôleur
- Utilisation de moteur de template (cache)
<table class='table table-striped'>
<thead><tr><th colspan='3'>{{model}}</th></tr></thead>
<tbody>
{% for object in objects %}
<tr>
<td>{{object.toString()|raw}}</td>
<td class='td-center'><a class='btn btn-primary btn-xs' href='{{baseHref~"/frm/"~object.getId()}}'>...</a></td>
<td class='td-center'><a class='btn btn-warning btn-xs' href='{{baseHref~"/delete/"~object.getId()}}'>X</a></td>
</tr>
{% endfor %}
</tbody>
</table>
<a class='btn btn-primary' href='{{config["siteUrl"]~baseHref~"/frm"}}'>Ajouter...</a>
Scripts côté client
- Généré en PHP
- Dans les contrôleurs, puis insérés dans la vue
public function index() {
$this->loadView("main/vHeader.html",array("infoUser"=>Auth::getInfoUser()));
$this->loadView("main/vDefault.html");
$this->loadView("main/vFooter.html");
Jquery::getOn("click", ".btAjax", "Sample/ajaxSample","#response");
echo Jquery::compile();
}
