ID:               47213
 Updated by:       [email protected]
 Reported By:      rasmus at mindplay dot dk
-Status:           Open
+Status:           Bogus
 Bug Type:         Feature/Change Request
 Operating System: all
 PHP Version:      5.2.8
 New Comment:

It's here for people who _really_ want it, but we certainly won't make
this a default function as 99% of the probable use cases are bad deign
of PHP applications or other mistakes. In your case see
spl_autoload_register() which does exactly what you want.


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

[2009-01-25 16:35:00] rasmus at mindplay dot dk

Description:
------------
Please consider including this function in the standard library:

http://us3.php.net/rename_function

This would enable techniques as shown below.

I know this is a duplicate of feature request #37078, which was bluntly
rejected without explanation, before anyone had a chance to review or
comment on this idea.

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

// example -
// install an autoload handler that preserves an existing handler:

if (function_exists('__autoload')) {
  rename_function('__autoload', '__autoload_old');
}

function __autoload($class_name) {
  if (function_exists('__autoload_old') {
    try {
      __autoload_old($class_name);
    catch ($e) {
      // my own autoloader here..
    }
  }
}

?>

Another example would be the ability to extend existing PHP functions
with new functionality, like calculating default arguments or enhancing
the behavior of certain functions. Example: the array_chunk function
only works with real arrays - you could override it with a function that
works with iterable objects as well.

Expected result:
----------------
This would work - you could override this magic function and preserve
any existing autoloader.

This would enable you to combine autoloaders from different projects.

Actual result:
--------------
The function is not generally available on standard PHP installations.



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


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

Reply via email to