Du Lourd ta question et hyper intéréssante :) on passe à un autre niveau d'existence :) Cela dit, je ne vois pas ou sont tes before et after? les assimile tu a tes fonction construct et destruct? Bref pour ce qui est de Cakephp tout comme zend ou ruby ou n'importe quel cms, il existe plusieurs types de before et after Au niveau de ton controller tu devras implementer les fonctions suivant: - beforeFilter() - beforeRender() - beforeRedirect() - afterFilter() (donc ne pas oublier l'intégration du template qui sera appelé via le controller) AU niveau de ton model tu as d'autres before et after - beforeFind() - afterFind() - beforeSave() - afterSave() - beforeDelete() - afterDelete() - beforeValidate() - afterValidate() Juste une remarque, en regardant le code de cake, je pensais avoir un systeme de hook comme sur drupal ou wordpress mais non!! au niveau du Controller, cakephp n'utilises ni hook, ni le constructeur mais plutot un pattern observateur qui est en écoute et qui lance les methodes (citées) si elle existe (un truc du genre if(
Bonjour,
je suis en cours de la création de mon propre Framework PHP. et là je voudrais vous demander une petite question.
Comment les Frameworks assez connus tel que Symfony ou CakePhp arrive t-ils à gérer les Before et After dans leurs controllers.
Je bricole actuellement avec le constructeur et le destructeur de la classe Mère (AppController). Mais je suis sur qu'il y a une astuce plus intelligente.
BootStraper
$newInstance = new $controller_name();
$newInstance->__set("controller",$controller_name);
$newInstance->__set("action",$action);
if($action){
$newInstance->$action();
}else{
$newInstance->index();
}
Classe Users
class UsersController extends AppController{
public function users(){
parent::__construct();
}
public function index(){
echo "index";
}
public function nouveau(){
echo "Nouveau";
}
}
Classe AppController
class AppController{
public function __construct(){
echo "Contructeur AppController";
}
public function __destruct(){
echo "Destructeur AppController";
}
}
_______________
à l'appel de Users/nouveau, le résultat est comme le suivant :
Contructeur AppController
Nouveau
Destructeur AppController
_________________
Merci d'avance
2 réponses
Je te remercie BenFarhat pour ces explications. mais ce que je cherche exactement c'est le fire event, je sais pas si le observer patern est capable de la faire.
Si j'appelle une fonction X, une autre fonction X s'auto appelle aussi.
du coup ca me permettra de gerer mes before et after fonctions et aussi de gérer mes views (je voudrais charger les views de manière automatique).