[wp-trac] [WordPress Trac] #36335: Next generation: core autoloader proposal
    WordPress Trac 
    noreply at wordpress.org
       
    Sat Mar 26 10:38:24 UTC 2016
    
    
  
#36335: Next generation: core autoloader proposal
-----------------------------+------------------------------
 Reporter:  dnaber-de        |       Owner:
     Type:  feature request  |      Status:  new
 Priority:  normal           |   Milestone:  Awaiting Review
Component:  General          |     Version:
 Severity:  normal           |  Resolution:
 Keywords:                   |     Focuses:
-----------------------------+------------------------------
Comment (by tfrommen):
 For testing's sake, the autoloader methods (i.e., the interface as well as
 the implementing classes) should return a status. This would lead to the
 following:
 {{{#!php
 <?php
 interface WP_Autoload_Autoload {
     /**
      * @param WP_Autoload_Rule $autoload_rule
      *
      * @return bool
      */
     public function add_rule( WP_Autoload_Rule $autoload_rule );
 }
 }}}
 and
 {{{#!php
 <?php
 class WP_Autoload_SplAutoload implements WP_Autoload_Autoload {
     /**
      * @var WP_Autoload_Rule[]
      */
     private $rules = array();
     /**
      * @param WP_Autoload_Rule $autoload_rule
      *
      * @return bool
      */
     public function add_rule( WP_Autoload_Rule $autoload_rule ) {
         if ( in_array( $autoload_rule, $this->rules, true ) ) {
             return false;
         }
         $this->rules[] = $autoload_rule;
         return true;
     }
     /**
      * @param string $fqcn (fully qualified class name)
      *
      * @return bool
      */
     public function load_class( $fqcn ) {
         foreach ( $this->rules as $rule ) {
             if ( $rule->load_class( $fqcn ) )
                 return true;
         }
         return false;
     }
 }
 }}}
 I also added a type-hint for the autoloader rule parameter.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/36335#comment:3>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
    
    
More information about the wp-trac
mailing list