From:             thiago dot silva at kdemail dot net
Operating system: Linux/slackware
PHP version:      5.0.5
PHP Bug Type:     Feature/Change Request
Bug description:  Error handling: @ operator behavior / __autoload()  and 
set_error_handler() 

Description:
------------
The troublesome scenario: 
 
Using a central __autoload() function to load all classes 
of the application (wich uses libraries that uses 
different file extensions): 
 
function __autoload($classname) { 
  @include($classname.'.php'); 
  if(class_exits($classname)) return; 
  @include($classname.'.class.php'); 
  if(class_exits($classname)) return; 
 
  die("$classname not found"); 
} 
 
 
Now, it is terrible to debug applications that use this 
scheme. The @ operator supress fatal error messages. I 
don't belive there is a point for this behavior. If one 
doesn't want error messages, simply turn of the global 
error_reporting option. Why expect a blank page for one or 
two commands when something goes wrong?  
 
Request #1: It would be desirable to have the @ operator 
not supressing fatal error messages. 
 
Now, in the __autoload() context, the user error handler 
(setted with set_error_handler()) is not used, if we 
remove the @ from include() statements. The warning 
messages are sent to the default error handler (therefore, 
to the output if display_errors is on). 
 
Request #2: __autoload() should respect the current error 
handler settings. 
 
Related reports I've found: 
#8294 
#32545 


-- 
Edit bug report at http://bugs.php.net/?id=35269&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=35269&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=35269&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=35269&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=35269&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=35269&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=35269&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=35269&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=35269&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=35269&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=35269&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=35269&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=35269&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=35269&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=35269&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=35269&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=35269&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=35269&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=35269&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=35269&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=35269&r=mysqlcfg

Reply via email to