Re: Re: [RFC] Autoloader Error Handling
| From: | Sebastian Krebs | Date: | Fri, 25 Nov 2011 08:56:01 +0000 |
| Subject: | Re: Re: [RFC] Autoloader Error Handling | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-56617@lists.php.net to get a copy of this message | ||
Hi,
Just to throw my 2 cent in: Im with Micheal. An application, that tries to
access a class, that doesn't exists, is broken and a FATAL is valid. This
application doesn't need try-catch, but a bugfix (and if it is already
released: A better testing management).
On the other side an application, that makes use of dynamic class names
should make use of class_exists() in any case. An exception after calling
class_exists() is just bad, but the classloader cannot distinguish between
the reasons, why it is called.
2011/11/25 Christian Kaps <christian.kaps@mohiva.com>
> Am 25.11.2011 08:24, schrieb Michael Wallner:
>
> On Thu, 24 Nov 2011 23:28:35 +0100, Christian Kaps wrote:
>>
>>
>>>
>>> https://wiki.php.net/rfc/**autoloader_error_handling<https://wiki.php.net/rfc/autoloader_error_handling>
>>>
>>>
>> Throwing an exception or fatal error in an autoloader
>> absolutely does not make any sense in my eyes.
>> Projects doing this should step back and think a
>> minute about what they dare.
>>
>> Mike
>>
>
> Hi,
>
> how would you bring your application in a consistent state after a class
> couldn't be loaded. I do this by adding a try/catch block around my code.
>
> try {
> new Application();
> } catch (Exception) {
> // collect data
> // send mail
> // redirect to maintenance page
> }
>
> An other question is, if the autoloader work silent and I write:
>
> new NotExistingClass();
>
> I think in this case the engine will also trigger a fatal error. So in my
> eyes it is regardless of whether it trigger a fatal error in the autoloader
> or the autoloader works silent. Both cases ends in a fatal error. Or am i
> wrong here?
>
> Christian
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>