Re: Re: [RFC] Autoloader Error Handling
| From: | Ferenc Kovacs | 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