rfc:autofunc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rfc:autofunc [2011/08/05 01:11]
tyrael
rfc:autofunc [2017/09/22 13:28] (current)
Line 3: Line 3:
   * Date: 2011-08-05   * Date: 2011-08-05
   * Author: Ferenc Kovacs <​tyra3l@gmail.com>​   * Author: Ferenc Kovacs <​tyra3l@gmail.com>​
-  * Status: ​Draft+  * Status: ​Inactive
   * First Published at: https://​wiki.php.net/​rfc/​autofunc   * First Published at: https://​wiki.php.net/​rfc/​autofunc
  
Line 14: Line 14:
  
 The suggested change would be pretty straightforward and BC compatible: The suggested change would be pretty straightforward and BC compatible:
-  * Add a fourth optional parameter for spl_autoload_register called $types with the default value of T_CLASS ​(this would keep the BC), supported values would be any combination of T_CLASS ​and T_FUNCTION ​for now.+  ​* Add two new constants to spl: SPL_AUTOLOAD_CLASS,​ SPL_AUTOLOAD_FUNCTION.  
 +  ​* Add a fourth optional parameter for spl_autoload_register called $types with the default value of SPL_AUTOLOAD_CLASS ​(this would keep the BC), supported values would be any combination of SPL_AUTOLOAD_CLASS ​and SPL_AUTOLOAD_FUNCTION ​for now.
     * As you would guess, this would work the same way as the $error_types parameter works for set_error_handler:​ you can specify for which type(s) of missing tokens the autoloader should be called.     * As you would guess, this would work the same way as the $error_types parameter works for set_error_handler:​ you can specify for which type(s) of missing tokens the autoloader should be called.
   * The type for the missing token should also be passed to the $autoload_function callback as a second param.   * The type for the missing token should also be passed to the $autoload_function callback as a second param.
     * This is needed to be able to handle multiple types of tokens with a common callback.     * This is needed to be able to handle multiple types of tokens with a common callback.
     * Note that passing more parameters to a function than it has in its definition is valid, this would also be a backward compatible change.     * Note that passing more parameters to a function than it has in its definition is valid, this would also be a backward compatible change.
-  * Change the current class autoloading to only call the autoloaders which match with the T_CLASS ​types. +  * Change the current class autoloading to only call the autoloaders which match with the SPL_AUTOLOAD_CLASS ​types. 
-  * Add the function autoloading to only call the autoloaders which match with the T_FUNCTION ​types.+  * Add the function autoloading to only call the autoloaders which match with the SPL_AUTOLOAD_FUNCTION ​types.
  
 ==== Future improvements ==== ==== Future improvements ====
  
-Notice that currently only functions are proposed, but we could implement autoloading other tokens (T_DECLARE, T_CONST, etc.) with this interface.+Notice that currently only functions are proposed, but we could implement autoloading other tokens (SPL_AUTOLOAD_CONSTANT, etc.) with this interface.
  
 ==== Examples ==== ==== Examples ====
Line 45: Line 46:
   true,   true,
   false,   false,
-  ​T_FUNCTION+  ​SPL_AUTOLOAD_FUNCTION
  );  );
  
Line 52: Line 53:
   function ($name, $type) {   function ($name, $type) {
    ​switch($type){    ​switch($type){
-    case T_CLASS:+    case SPL_AUTOLOAD_CLASS:
      /* ... */      /* ... */
      ​break;​      ​break;​
-    case T_FUNCTION:+    case SPL_AUTOLOAD_FUNCTION:
      /* ... */      /* ... */
      ​break; ​     ​      ​break; ​     ​
Line 62: Line 63:
   true,   true,
   false,   false,
-  ​T_CLASS|T_FUNCTION+  ​SPL_AUTOLOAD_CLASS|SPL_AUTOLOAD_FUNCTION
  );  );
 </​code>​ </​code>​
Line 80: Line 81:
   * [[http://​www.mail-archive.com/​internals@lists.php.net/​msg48820.html]]   * [[http://​www.mail-archive.com/​internals@lists.php.net/​msg48820.html]]
  
 +==== Changelog ====
 + * 2011.08.17 - replace the T_* constants with SPL_AUTOLOAD_*
  
rfc/autofunc.1312506712.txt.gz · Last modified: 2017/09/22 13:28 (external edit)