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

Reply via email to