Edit report at http://bugs.php.net/bug.php?id=51150&edit=1
ID: 51150
User updated by: jo at feuersee dot de
Reported by: jo at feuersee dot de
Summary: spl_autoload_extensions() should accept arrays to
avoid invalid separators
Status: Open
Type: Feature/Change Request
Package: SPL related
Operating System: *
PHP Version: 5.3.1
New Comment:
This is not about that I have a list of extensions in an array and that
I am
unable to use implode to pass this to spl_autoload_extension() as a
string.
This bug report is about that the design of spl_autoload_extension()
would be
better if it accepts an array.
Using a whatether separated string implies that the whatether character
can't be
a valid part of the argument list. An array does not have this
limitation.
Previous Comments:
------------------------------------------------------------------------
[2010-03-02 03:27:41] [email protected]
Using implode() would really be enough here, I'm not sure whether we
should add that option or not, but it is indeed not a bad idea.
As a workaround you may want to do:
spl_autoload_extensions(implode(',', $extensions));
------------------------------------------------------------------------
[2010-03-01 21:16:40] [email protected]
-Operating System: Any
+Operating System: *
------------------------------------------------------------------------
[2010-03-01 20:05:58] [email protected]
-Package: Feature/Change Request
+Package: SPL related
------------------------------------------------------------------------
[2010-02-25 20:22:49] jo at feuersee dot de
Description:
------------
spl_autoload_extensions() accepts a string with a , separated list of
filename parts to register for autoloading.
This results in filenames containing a , as an extension filename
become impossible to register.
It should be possible to pass an array to circumvent any restriction
cased by the string based argument.
I know that ppl might consider it strange to use , as part of a
filename.
IMHO there may be cases where it might be necessary. Considering that
arrays are a native PHP data type, it would be a better design.
Reproduce code:
---------------
spl_autoload_extensions(array('.class.php', '.php'));
myclass::hello();
Expected result:
----------------
Hello world
Actual result:
--------------
Warning: spl_autoload_extensions() expects parameter 1 to be string,
array given in [test.php] on line ##
Fatal error: Class 'myclass' not found in [test.php] on line ##
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=51150&edit=1