mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-03 22:32:40 +08:00 
			
		
		
		
	...
This commit is contained in:
		@ -89,6 +89,7 @@ abstract class Application extends Module
 | 
				
			|||||||
	 * @see language
 | 
						 * @see language
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public $sourceLanguage = 'en_us';
 | 
						public $sourceLanguage = 'en_us';
 | 
				
			||||||
 | 
						public $preload = array('errorHandler');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private $_runtimePath;
 | 
						private $_runtimePath;
 | 
				
			||||||
	private $_ended = false;
 | 
						private $_ended = false;
 | 
				
			||||||
@ -115,7 +116,6 @@ abstract class Application extends Module
 | 
				
			|||||||
		\Yii::$application = $this;
 | 
							\Yii::$application = $this;
 | 
				
			||||||
		$this->setBasePath($basePath);
 | 
							$this->setBasePath($basePath);
 | 
				
			||||||
		\Yii::setAlias('application', $this->getBasePath());
 | 
							\Yii::setAlias('application', $this->getBasePath());
 | 
				
			||||||
		$this->initSystemHandlers();
 | 
					 | 
				
			||||||
		$this->registerCoreComponents();
 | 
							$this->registerCoreComponents();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -640,19 +640,6 @@ abstract class Application extends Module
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Initializes the class autoloader and error handlers.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	protected function initSystemHandlers()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (YII_ENABLE_EXCEPTION_HANDLER) {
 | 
					 | 
				
			||||||
			set_exception_handler(array($this, 'handleException'));
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if (YII_ENABLE_ERROR_HANDLER) {
 | 
					 | 
				
			||||||
			set_error_handler(array($this, 'handleError'), error_reporting());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Registers the core application components.
 | 
						 * Registers the core application components.
 | 
				
			||||||
	 * @see setComponents
 | 
						 * @see setComponents
 | 
				
			||||||
 | 
				
			|||||||
@ -125,7 +125,12 @@ class ErrorHandler extends ApplicationComponent
 | 
				
			|||||||
			$this->clearOutput();
 | 
								$this->clearOutput();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							try {
 | 
				
			||||||
			$this->render($exception);
 | 
								$this->render($exception);
 | 
				
			||||||
 | 
							} catch (\Exception $e) {
 | 
				
			||||||
 | 
								// use the most primitive way to display exception thrown in the error view
 | 
				
			||||||
 | 
								$this->renderAsText($e);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	protected function render($exception)
 | 
						protected function render($exception)
 | 
				
			||||||
@ -318,12 +323,9 @@ class ErrorHandler extends ApplicationComponent
 | 
				
			|||||||
	public function renderAsText($exception)
 | 
						public function renderAsText($exception)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (YII_DEBUG) {
 | 
							if (YII_DEBUG) {
 | 
				
			||||||
			echo get_class($exception) . "\n";
 | 
								echo $exception;
 | 
				
			||||||
			echo $exception->getMessage() . ' (' . $exception->getFile() . ':' . $exception->getLine() . ")\n";
 | 
					 | 
				
			||||||
			echo $exception->getTraceAsString();
 | 
					 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			echo get_class($exception) . "\n";
 | 
								echo get_class($exception) . ':' . $exception->getMessage();
 | 
				
			||||||
			echo $exception->getMessage();
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -226,7 +226,7 @@ class View extends Component
 | 
				
			|||||||
			$view .= '.php';
 | 
								$view .= '.php';
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if ($view[0] === '@') {
 | 
							if ($view[0] === '@') {
 | 
				
			||||||
			$file = \Yii::getAlias($view[0]);
 | 
								$file = \Yii::getAlias($view);
 | 
				
			||||||
		} elseif (!empty($this->basePath)) {
 | 
							} elseif (!empty($this->basePath)) {
 | 
				
			||||||
			$basePaths = is_array($this->basePath) ? $this->basePath : array($this->basePath);
 | 
								$basePaths = is_array($this->basePath) ? $this->basePath : array($this->basePath);
 | 
				
			||||||
			foreach ($basePaths as $basePath) {
 | 
								foreach ($basePaths as $basePath) {
 | 
				
			||||||
 | 
				
			|||||||
@ -58,10 +58,7 @@ $owner = $this->owner;
 | 
				
			|||||||
		The above error occurred while the Web server was processing your request.
 | 
							The above error occurred while the Web server was processing your request.
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		If you think this is a server error, please contact us.
 | 
							Please contact us if you think this is a server error. Thank you.
 | 
				
			||||||
	</p>
 | 
					 | 
				
			||||||
	<p>
 | 
					 | 
				
			||||||
		Thank you.
 | 
					 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
	<div class="version">
 | 
						<div class="version">
 | 
				
			||||||
		<?php echo date('Y-m-d H:i:s', time()); ?>
 | 
							<?php echo date('Y-m-d H:i:s', time()); ?>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										9
									
								
								todo.md
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								todo.md
									
									
									
									
									
								
							@ -2,18 +2,15 @@
 | 
				
			|||||||
	* WebTarget
 | 
						* WebTarget
 | 
				
			||||||
	* ProfileTarget
 | 
						* ProfileTarget
 | 
				
			||||||
- base
 | 
					- base
 | 
				
			||||||
	* error/exception handling
 | 
					 | 
				
			||||||
	  * Convert all PHP errors into exceptions, remove YII_ENABLE_ERROR_HANDLER and error handler (?)
 | 
					 | 
				
			||||||
	* module
 | 
						* module
 | 
				
			||||||
	  - Module should be able to define its own configuration including routes. Application should be able to overwrite it.
 | 
						  - Module should be able to define its own configuration including routes. Application should be able to overwrite it.
 | 
				
			||||||
	* application
 | 
						* application
 | 
				
			||||||
	* http exception
 | 
					 | 
				
			||||||
	* security
 | 
						* security
 | 
				
			||||||
- validators
 | 
					- validators
 | 
				
			||||||
	* type conversion rules
 | 
						* type conversion rules
 | 
				
			||||||
	* CompareValidator::clientValidateAttribute(): search for "CHtml::activeId"
 | 
						* CompareValidator::clientValidateAttribute(): search for "CHtml::activeId"
 | 
				
			||||||
	* FileValidator, UniqueValidator, ExistValidator, DateValidator: TBD
 | 
						* FileValidator, UniqueValidator, ExistValidator, DateValidator: TBD
 | 
				
			||||||
	* consider merging UniqueValidator and ExistValidator and using a NOT property: array('!exist', <EFBFBD>)
 | 
						* consider merging UniqueValidator and ExistValidator and using a NOT property: array('!exist', …)
 | 
				
			||||||
	* when getting errors from getErrors it will be good to have which validator (at least type) failed exactly.
 | 
						* when getting errors from getErrors it will be good to have which validator (at least type) failed exactly.
 | 
				
			||||||
- console command support [DONE]
 | 
					- console command support [DONE]
 | 
				
			||||||
- built-in console commands
 | 
					- built-in console commands
 | 
				
			||||||
@ -25,8 +22,7 @@
 | 
				
			|||||||
	* a way to invalidate/clear cached data
 | 
						* a way to invalidate/clear cached data
 | 
				
			||||||
	* a command to clear cached data
 | 
						* a command to clear cached data
 | 
				
			||||||
- db
 | 
					- db
 | 
				
			||||||
	* DAO
 | 
						* sqlite, pgsql, sql server, oracle, db2 drivers
 | 
				
			||||||
	* schema
 | 
					 | 
				
			||||||
	  * write a guide on creating own schema definitions
 | 
						  * write a guide on creating own schema definitions
 | 
				
			||||||
	* AR
 | 
						* AR
 | 
				
			||||||
	  * saving related records
 | 
						  * saving related records
 | 
				
			||||||
@ -51,6 +47,7 @@
 | 
				
			|||||||
	* get/setFlash() should be moved to session component
 | 
						* get/setFlash() should be moved to session component
 | 
				
			||||||
	* support optional parameter in URL patterns
 | 
						* support optional parameter in URL patterns
 | 
				
			||||||
	* Response object.
 | 
						* Response object.
 | 
				
			||||||
 | 
						* ErrorAction
 | 
				
			||||||
- gii
 | 
					- gii
 | 
				
			||||||
    * move generation API out of gii, provide yiic commands to use it. Use same templates for gii/yiic.
 | 
					    * move generation API out of gii, provide yiic commands to use it. Use same templates for gii/yiic.
 | 
				
			||||||
	* i18n variant of templates
 | 
						* i18n variant of templates
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user