/** * Diese Methode lädt den Inhalt einer Skin-Datei in die Skin-Property der * Klasse. Dabei wird zuerst geschaut, ob es im aktuellen Template-Verzeichnis * eine entsprechende Datei gibt. Wenn nicht wird das Default-Skin geladen. * Die Skin eines Controls wird im Cache hinterlegt, um die Festplattten- * zugriffe zu minimieren. Dies kann zu Problemem führen, wenn im gleichen * Request zwei verschiedene Templates angesprochen werden. Aktuell ist dies * nicht vorgesehen. */ protected function loadSkin() { // 1. Schritt -> Versuch aus Template zu lesen // 2. Schritt -> Default lesen if ($this->skin === null) { $this->skin = Cache::get($this->getCacheId(), Template::loadSkin($this)); if ($this->skin === null && $this->defaultSkinFile !== '') { $this->skin = file_get_contents($this->defaultSkinFile); } Cache::set($this->getCacheId(), $this->skin); } }
/** * @covers \NewFrontiers\Framework\Output\Template::loadSkin */ public function testLoadSkin() { static::assertNull(Template::loadSkin(Template::load('test', true))); $skin = Template::loadSkin($this); static::assertEquals("html file contents 42", $skin); }