ID:               50246
 User updated by:  krzysztof dot talajko at gmail dot com
 Reported By:      krzysztof dot talajko at gmail dot com
 Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: Windows 7 RC
 PHP Version:      5.2.11
 New Comment:

Thank you for the Friendly Welcome.

My suggestion is to fix the manual in autoloading section, because it
is confusing. In php 5.3 exceptions can be thrown without this error.
There is no information about this difference between various php
versions. Second confusing thing is that in Zend Framework there is also
exception thrown in autoload function ... but I assume that some of ZF
programmers just didn't read the manual.


Previous Comments:
------------------------------------------------------------------------

[2009-11-20 17:56:20] j...@php.net

Thank you for not reading the manual or searching existing bug reports.
RTFM: http://php.net/autoload


------------------------------------------------------------------------

[2009-11-20 16:05:47] krzysztof dot talajko at gmail dot com

Simpler reproduce code is (results same as in original code):

<?php

function __autoload($class) {
    throw new Exception("Class ".$class." not found");
}

try{
  new Foo;
}
catch (Exception $e) {
  echo "Caught load class failed exception (".$e->getMessage().").";
}

------------------------------------------------------------------------

[2009-11-20 15:58:12] krzysztof dot talajko at gmail dot com

Description:
------------
Throw exception in __autoload() implementation is impossible. Instead
fatal error "Class (...) not found" is reported.

Reproduce code:
---------------
<?php

function loader($class) {
    @include_once($class.'.php');

    if (!class_exists($class, false)) {
        throw new Exception("Class ".$class." not found");
    }
}

spl_autoload_register('loader');

try{
  class FooClass extends Some_Not_Existing_Class {}
}
catch (Exception $e) {
  echo "Caught load class failed exception (".$e->getMessage().").";
}


Expected result:
----------------
Caught load class failed exception (Class Some_Not_Existing_Class not
found).

Actual result:
--------------
Fatal error: Class 'Some_Not_Existing_Class' not found in
C:\dev\workspace\foo.php on line 19


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=50246&edit=1

Reply via email to