public function run() { Url::remember('', $this->generateKey()); // create temporary file $model = $this->_model; $twigCode = $model ? $model->value : null; $tmpFile = \Yii::getAlias('@runtime') . '/' . md5($twigCode); file_put_contents($tmpFile, $twigCode); $render = new ViewRenderer(); try { $html = $render->render('renderer.twig', $tmpFile, []); } catch (\Twig_Error $e) { \Yii::$app->session->addFlash('warning', $e->getMessage()); $html = ''; } if (\Yii::$app->user->can(self::ACCESS_ROLE)) { $link = Html::a('prototype module', $model ? $this->generateEditRoute($model->id) : $this->generateCreateRoute()); if ($this->enableFlash) { \Yii::$app->session->addFlash($html ? 'success' : 'info', "Edit contents in {$link}, key: <code>{$this->generateKey()}</code>"); } if (!$model && $this->renderEmpty) { $html = $this->renderEmpty(); } } \Yii::trace('Twig widget rendered', __METHOD__); return $html; }