Das Zend Framework ist dafür bekannt, ziemlich viel Performance zu verschlucken. Ist auch kein Wunder bei so viel Objektorientierung…
Damit man sich ein wenig von der Performance zurückholen kann, gibt es einige Standard-Cache-Funktionen, die relativ einfach ohne großen Aufwand einzubauen sind. Standardmäßig können die Module Zend_Locale, Zend_Translate und Zend_Db_Table den Cache nutzen. Wie man die Anwendung entsprechend konfiguriert, wird in diesem kleinen How-To erklärt.
Beachte: Dies ist lediglich eine Standard-Konfiguration für das Caching mit normalen Dateien (File-Backend).
Als erstes muss folgender Abschnitt in die config.ini der Anwendung eingefügt werden:
; Cache Konfiguration resources.cachemanager.core.frontend.name = Core resources.cachemanager.core.frontend.options.lifetime = 86400 resources.cachemanager.core.frontend.options.automatic_serialization = true resources.cachemanager.core.backend.name = File resources.cachemanager.core.backend.options.cache_dir = ROOT_PATH "/var/cache" |
Der Parameter cache_dir sollte ggf. angepasst werden je nachdem, wo die Cache-Dateien abgelegt werden sollen.
Dann folgt die Änderungen in der Bootstrap-Klasse.
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { public function __construct($application) { parent::__construct($application); $this->bootstrap('cachemanager'); $cache = $this->getResource('cachemanager')->getCache('core'); Zend_Locale::setCache($cache); Zend_Translate::setCache($cache); Zend_Db_Table_Abstract::setDefaultMetadataCache($cache); // Und die anderen Resources... $this->bootstrap('frontController'); [...] } // Weitere Methoden [...] } |
Und das war’s auch schon. Jetzt verwenden Zend_Locale, Zend_Translate und Zend_Db_Table automatisch die Cache-Funktionen.