From 13bbe877ff40d62431f78da6daad4615a92698ec Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 6 Mar 2007 14:03:42 +0000 Subject: Better page class error reporting. --- framework/Exceptions/messages.txt | 1 + framework/Web/Services/TPageService.php | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/framework/Exceptions/messages.txt b/framework/Exceptions/messages.txt index 79fdb8d1..164b81d3 100644 --- a/framework/Exceptions/messages.txt +++ b/framework/Exceptions/messages.txt @@ -103,6 +103,7 @@ pageservice_basepath_invalid = TPageService.BasePath '{0}' is not a valid dire pageservice_page_required = Page Name Required pageservice_defaultpage_unchangeable = TPageService.DefaultPage cannot be modified after the service is initialized. pageservice_basepath_unchangeable = TPageService.BasePath cannot be modified after the service is initialized. +pageservice_pageclass_invalid = Page class {0} is invalid. It should be TPage or extend from TPage. pageserviceconf_file_invalid = Unable to open page directory configuration file '{0}'. pageserviceconf_aliaspath_invalid = uses an invalid file path "{1}" in page directory configuration file '{2}'. diff --git a/framework/Web/Services/TPageService.php b/framework/Web/Services/TPageService.php index e1bd47be..aed9d3e0 100644 --- a/framework/Web/Services/TPageService.php +++ b/framework/Web/Services/TPageService.php @@ -409,12 +409,15 @@ class TPageService extends TService $className=basename($path); if(!class_exists($className,false)) include_once($path.Prado::CLASS_FILE_EXT); - if(!class_exists($className,false) || !is_subclass_of($className,'TPage')) + if(!class_exists($className,false)) throw new TConfigurationException('pageservice_pageclass_unknown',$className); } else $className=$this->getBasePageClass(); + if($className!=='TPage' && !is_subclass_of($className,'TPage')) + throw new TConfigurationException('pageservice_pageclass_invalid',$className); + $page=Prado::createComponent($className); $page->setPagePath($pagePath); -- cgit v1.2.3