Re: Re: [RFC] Autoloader Error Handling

From: Date: Fri, 25 Nov 2011 12:34:41 +0000
Subject: Re: Re: [RFC] Autoloader Error Handling
References: 1 2 3 4 5 6 7 8 9  Groups: php.internals 
Request: Send a blank email to internals+get-56635@lists.php.net to get a copy of this message
On Fri, Nov 25, 2011 at 1:28 PM, Christian Kaps <christian.kaps@mohiva.com>wrote: > Am 25.11.2011 13:13, schrieb Ferenc Kovacs: > >> On Fri, Nov 25, 2011 at 12:56 PM, Christian Kaps >> <christian.kaps@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)? 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. -- Ferenc Kovács @Tyr43l - http://tyrael.hu

« previous php.internals (#56635) next »