Open rbcreation opened 11 years ago
J'aime beaucoup la finalité, qui peux même s'écrire par exemple : $this->views["form"]->render(); pour l'affichage du formulaire et $this->views["list"]->render(); pour le listing principal
Par contre :
D'autres avis sur le sujet ?
Je vais réfléchir à un système pratique et sécurisé sur la base de ta réflexion ;-)
Cool! J'ai hâte de voir ca. Pour les classes inluses dans le sl_functions, j'ai fait pareil. Un ptit script qui récupère les fichiers et qui les inclus automatiquement.
Je pense voir pour inclure les classes avec l'autoload si tu connais. C'est pratique, et ca permet de n'inclure que les classes utilisées ;-)
Tiens, je viens de le mettre en place : https://github.com/wakdev/slash-cms/commit/dfd7c683fde05313aff504ccfa05e44ff2253217
De souvenir, je crois que dans le tuto sur la POO dans le site du zero, ils en parlent.
C'est bien ce que tu as fait. Ce sera la même manip pour les views et les models ?
Oui pourquoi pas, je ne me suis pas penché encore sur le problème ^^
SUGGESTION : Automatiser les includes des models et des views ainsi que leur instanciation respective dans sl_controller et sla_controller.
BUT : Ne plus inclure et instancier à chaque fois les models et les views des modules.
Pour faire cela, il faut :
Exemple avec un module "sl_secure" : models/sl_secure_form.model.php views/default/sl_secure.view.php views/default/sl_secure_form.view.php sl_secure.controller.php
public function load_models() {
$models = sl_module::include_files($this->module["url"]."models/");
foreach ($models as $value) { $model_name = explode(".", $value); $model = $model_name[0]."_model"; $this->models[$model_name[0]] = new $model($this); }
}
public function load_views() {
$views= sl_module::include_files($this->module["url"]."views/".$this->config["template_name"]."/");
foreach ($views as $value) { $view_name = explode(".", $value); $view = $view_name[0]."_view"; $this->views[$view_name[0]] = new $view($this); }
}
public function include_files($dir) { $filenames = array();
if (is_dir($dir)) { if ($dir_handle = opendir($dir)) { while (($file = readdir($dir_handle)) !== false) { if (is_file($dir.$file)) { include ($dir.$file); array_push($filenames, $file); } } closedir($dir_handle); } } return $filenames; }
Et pour la totale automatisation on remplace par exemple $this->views["sl_secure_form"] par $this->views[$this->module["name"]."_form"]