From 122bd231b4fceef9aee94b7a859ecff8acc40b09 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Tue, 9 Apr 2013 22:43:04 -0400 Subject: [PATCH] modified Application constructor signature. --- framework/base/Application.php | 22 +++++++++++++++------- tests/unit/framework/helpers/HtmlTest.php | 4 +++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/framework/base/Application.php b/framework/base/Application.php index 1e02c1d..01e6df8 100644 --- a/framework/base/Application.php +++ b/framework/base/Application.php @@ -98,16 +98,24 @@ class Application extends Module /** * Constructor. - * @param string $id the ID of this application. The ID should uniquely identify the application from others. - * @param string $basePath the base path of this application. This should point to - * the directory containing all application logic, template and data. - * @param array $config name-value pairs that will be used to initialize the object properties + * @param array $config name-value pairs that will be used to initialize the object properties. + * Note that the configuration must contain both [[id]] and [[basePath]]. + * @throws InvalidConfigException if either [[id]] or [[basePath]] configuration is missing. */ - public function __construct($id, $basePath, $config = array()) + public function __construct($config = array()) { Yii::$app = $this; - $this->id = $id; - $this->setBasePath($basePath); + + if (!isset($config['id'])) { + throw new InvalidConfigException('The "id" configuration is required.'); + } + + if (isset($config['basePath'])) { + $this->setBasePath($config['basePath']); + unset($config['basePath']); + } else { + throw new InvalidConfigException('The "basePath" configuration is required.'); + } if (YII_ENABLE_ERROR_HANDLER) { ini_set('display_errors', 0); diff --git a/tests/unit/framework/helpers/HtmlTest.php b/tests/unit/framework/helpers/HtmlTest.php index 2c3de72..bf0ca0a 100644 --- a/tests/unit/framework/helpers/HtmlTest.php +++ b/tests/unit/framework/helpers/HtmlTest.php @@ -10,7 +10,9 @@ class HtmlTest extends \yii\test\TestCase { public function setUp() { - new Application('test', '@yiiunit/runtime', array( + new Application(array( + 'id' => 'test', + 'basePath' => '@yiiunit/runtime', 'components' => array( 'request' => array( 'class' => 'yii\web\Request',