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

From: Date: Wed, 18 Nov 2020 14:12:39 +0000
Subject: Req #51150 [Opn->Sus]: spl_autoload_extensions() should accept arrays to avoid invalid separators
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-230433@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=51150&edit=1

 ID:                 51150
 Updated by:         cmb@php.net
 Reported by:        jo at feuersee dot de
 Summary:            spl_autoload_extensions() should accept arrays to
                     avoid invalid separators
-Status:             Open
+Status:             Suspended
 Type:               Feature/Change Request
 Package:            SPL related
 Operating System:   *
 PHP Version:        5.3.1
 Block user comment: N
 Private report:     N

 New Comment:

At this point in time, it may be more appropriate to deprecate
spl_autoload_extension() and spl_autoload().  If you, or anybody
else, is still interested in this feature, please forward the
request to the internals mailing list for discussion.  For the
time being, I'm suspending this ticket.


Previous Comments:
------------------------------------------------------------------------
[2010-03-02 09:21:14] jo at feuersee dot de

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.

------------------------------------------------------------------------
[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-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 https://bugs.php.net/bug.php?id=51150&edit=1


Thread (4 messages)

« previous php.bugs (#230433) next »