Bonjour Imikado,
D'abord, un grand merci pour ce Framework qui me simplifie la vie
J'ai un problème en créant un CRUD avec des models mis en cacheVar (sur les findAll).
Dans le module CRUD j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public function findAll(){ $sId='paysFindAll'; if(_root::getCacheVar()->isCached($sId) ){ $tPays=_root::getCacheVar()->getCached($sId); }else{ $tPays = $this->findMany('SELECT * FROM '.$this->sTable.' '); _root::getCacheVar()->setCache($sId,$tPays); } return $tPays; } public function getSelect(){ $tab=$this->findAll(); $tSelect=array(); if($tab){ foreach($tab as $oRow){ $tSelect[ $oRow->id ]=$oRow->nom; } } return $tSelect; }
Les getSelect faisant appel à la fonction findAll(), j'ai ce résultat sur Ville et Pays:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function _list(){ $tAuteur=model_auteur::getInstance()->findAll(); $oView=new _view('auteur::list'); $oView->tAuteur=$tAuteur; $oView->tJoinmodel_ville=model_ville::getInstance()->getSelect(); $oView->tJoinmodel_pays=model_pays::getInstance()->getSelect(); $this->oLayout->add('main',$oView); }
Et les fichiers .cachevar de 'ville' et 'pays' ne sont pas créés, seul le premier existe (auteurFindAll.cachevar).
En analysant le problème, j'ai constaté que dans la classe lib/framework/class_cacheVar, en supprimant la condition de la fonction load(), ça fonctionne correctement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private function load($sId){ /*if($this->_oFile){ return; }*/ $oFile=new _file(_root::getConfigVar('path.cache').$sId.'.cachevar'); $this->_oFile=$oFile; }
Mais je ne connais pas les conséquences de la suppression de cette condition.
Pourriez-vous m'éclairer, svp?
Partager