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

Reply via email to