Req #51150 [Opn]: spl_autoload_extensions() should accept arrays to avoid invalid separators

From: Date: Tue, 02 Mar 2010 08:21:14 +0000
Subject: Req #51150 [Opn]: spl_autoload_extensions() should accept arrays to avoid invalid separators
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-148164@lists.php.net to get a copy of this message
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] kalle@php.net

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] jani@php.net

-Operating System: Any
+Operating System: *


------------------------------------------------------------------------
[2010-03-01 20:05:58] pajoye@php.net

-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


Thread (4 messages)

« previous php.bugs (#148164) next »