mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-03 13:58:55 +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();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->render($exception);
|
try {
|
||||||
|
$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