Am 25.11.2011 13:34, schrieb Ferenc Kovacs:
On Fri, Nov 25, 2011 at 1:28 PM, Christian Kaps
<christian.k...@mohiva.com>wrote:
Am 25.11.2011 13:13, schrieb Ferenc Kovacs:
On Fri, Nov 25, 2011 at 12:56 PM, Christian Kaps
<christian.k...@mohiva.com>**wrote:
I surround my application with a try/catch block to catch uncaught
exceptions. An autoloader exception could be one of them.
But I use also similar calls to reformat error messages.
try {
$class = new ReflectionClass($****annotationName);
} catch (ClassNotFoundException $e) {
$message = "The annotation class `{$annotationName}` cannot be
found; ";
$message .= "called in DocBlock for:
{$this->context->getLocation()**
**};
";
throw new ClassNotFoundException($****message, null, $e);
}
if(!class_exists('**ReflectionClass')){
// call your error handler here or throw Exception as you like
}
else{
$class = new ReflectionClass($****annotationName);
}
Reflection class triggers also the autoloader, because it tries to
load
the class $annotationName.
then class_exists($annotationName)?
Oh, my mistake. I have forgotten that class_exists triggers also the
autoloader. Yes, then your solution is as smart as mine.
btw. I think that ReflectionClass::__construct will throw a
LogicException
if the classname you passed couldn't be loaded.
so you don't need your special autoloader for handling that.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php