destroyApp(); } } public function getParam($name,$default=null) { if (self::$params === null) { self::$params = require(__DIR__ . '/data/config.php'); } return isset(self::$params[$name]) ? self::$params[$name] : $default; } protected function requireApp($requiredConfig=array()) { static $usedConfig = array(); static $defaultConfig = array( 'id' => 'testapp', 'basePath' => __DIR__, ); $newConfig = array_merge( $defaultConfig, $requiredConfig ); $appClass = $this->getParam( 'appClass', '\yii\web\Application' ); if (!(\yii::$app instanceof $appClass)) { new $appClass( $newConfig ); $usedConfig = $newConfig; } elseif ($newConfig !== $usedConfig) { new $appClass( $newConfig ); $usedConfig = $newConfig; } } protected function destroyApp() { \yii::$app = null; } }