/** * @return array|bool|mixed */ public function getImageObject() { $key = 'cache_page_image_object_' . $this->id_page . '-' . $this->language; $img = Yii::$app->cache->get($key); if ($img === false) { $doc = new DOMDocument(); $doc->loadHTML($this->content); $tags = $doc->getElementsByTagName('img'); $img = []; foreach ($tags as $i => $tag) { $img['url'] = $tag->getAttribute('src'); $img['width'] = $tag->getAttribute('width'); $img['height'] = $tag->getAttribute('height'); break; } /* cache */ $sql = (new Query())->select('updated_at')->from(PageData::tableName())->where(['id_page' => $this->id_page, 'language' => $this->language])->createCommand()->rawSql; $dependency = new DbDependency(); $dependency->sql = $sql; Yii::$app->cache->set($key, $img, 0, $dependency); } return $img; }