Rewrite standart Exception for just return error. Old functionality of showing statical pages was splitted for two new exceptions: StaticPageException for showing static templates and DynamicPageException for invoking Actions classes
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/trunk@30 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
This commit is contained in:
16
classes/DynamicPageException.class.php
Normal file
16
classes/DynamicPageException.class.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Эксепшен для выводя результата работы класса
|
||||||
|
*
|
||||||
|
* @copyright
|
||||||
|
* @link
|
||||||
|
* @package Majestic
|
||||||
|
* @subpackage Core
|
||||||
|
* @since
|
||||||
|
* @version SVN: $Id$
|
||||||
|
* @filesource $URL$
|
||||||
|
*/
|
||||||
|
class DynamicPageException extends Exception
|
||||||
|
{}
|
||||||
|
?>
|
@ -26,12 +26,18 @@ final class PageController
|
|||||||
return $decorator->display($action);
|
return $decorator->display($action);
|
||||||
} catch (MJException $e) {
|
} catch (MJException $e) {
|
||||||
return $e->terminate();
|
return $e->terminate();
|
||||||
} catch (Exception $e) {
|
} catch (DynamicPageException $e) {
|
||||||
$decorator_name = DEFAULT_DECORATOR;
|
$decorator_name = DEFAULT_DECORATOR;
|
||||||
$action_name = DEFAULT_ACTION;
|
|
||||||
|
|
||||||
$decorator = new $decorator_name;
|
$decorator = new $decorator_name;
|
||||||
|
$action_name = $e->getMessage();
|
||||||
|
return $decorator->display(new $action_name);
|
||||||
|
} catch (StaticPageException $e) {
|
||||||
|
$decorator_name = DEFAULT_DECORATOR;
|
||||||
|
$decorator = new $decorator_name;
|
||||||
|
$action_name = DEFAULT_ACTION;
|
||||||
return $decorator->display(new $action_name($e->getMessage()));
|
return $decorator->display(new $action_name($e->getMessage()));
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return $e->getMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
18
classes/StaticPageException.class.php
Normal file
18
classes/StaticPageException.class.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Эксепшен для вывода статических шаблонов
|
||||||
|
*
|
||||||
|
* @copyright
|
||||||
|
* @link
|
||||||
|
* @package Majestic
|
||||||
|
* @subpackage Core
|
||||||
|
* @since
|
||||||
|
* @version SVN: $Id$
|
||||||
|
* @filesource $URL$
|
||||||
|
*/
|
||||||
|
class StaticPageException extends Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
@ -42,6 +42,7 @@ define('STATIC_TPL_PATH', TPL_PATH.'/static');
|
|||||||
define('DECORATOR_POSTFIX', 'Decorator');
|
define('DECORATOR_POSTFIX', 'Decorator');
|
||||||
define('MODEL_POSTFIX', 'Model');
|
define('MODEL_POSTFIX', 'Model');
|
||||||
define('ACTION_POSTFIX', 'Action');
|
define('ACTION_POSTFIX', 'Action');
|
||||||
|
define('EXCEPTION_POSTFIX', 'Exception');
|
||||||
|
|
||||||
define('TIME_NOW', time());
|
define('TIME_NOW', time());
|
||||||
|
|
||||||
@ -77,6 +78,7 @@ function __autoload($name)
|
|||||||
|
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case $name:
|
case $name:
|
||||||
|
case EXCEPTION_POSTFIX:
|
||||||
require(CORE_PATH.'/'.$name.'.class.php');
|
require(CORE_PATH.'/'.$name.'.class.php');
|
||||||
break;
|
break;
|
||||||
case ACTION_POSTFIX:
|
case ACTION_POSTFIX:
|
||||||
|
Reference in New Issue
Block a user