CakePHP: ricavare la lista dei controllers e salvarla in cache

ATTENZIONE! Il post ha più di 2 anni e le informazioni contenute potrebbero essere obsolete (ad esempio a causa di un aggiornamento di versione rispetto agli elementi descritti o links modificati da siti esterni).

Ecco una funzione che può tornare utile durante lo sviluppo in cakePHP. Il seguente snippet permette di ricavare dinamicamente la lista di tutti i controllers e salvarla in cache. In questo caso la lista verrà salvata come stringa separata da pipes:



controller_a|controller_b|controller_c

Ed ecco il codice:



//legge la lista dei controllers dalla cache
//(se è stata precedentemente creata)
$controllers = Cache::read('controllers_list');
//se la lista in cache non esiste
if ($controllers === false)
{
 $controllers = Configure::listObjects('controller');

 foreach ($controllers as &$value)
 {
  $value = Inflector::underscore($value);
 }

 $controllers = implode('|', $controllers);
 //scrittura della lista in cache
 Cache::write('controllers_list', $controllers);
}


Commenti