WPLib::get_child_classes PHP Method

get_child_classes() static public method

Returns array of class names $base_class children with positive values for $base_class::$contant_name.
static public get_child_classes ( $base_class, $constant_name ) : string[]
$base_class
$constant_name
return string[]
    static function get_child_classes($base_class, $constant_name)
    {
        $cache_key = "classes[{$base_class}::{$constant_name}]";
        if (!WPLib::is_development()) {
            $cache_key = md5($cache_key);
        }
        if (!($child_classes = self::cache_get($cache_key))) {
            WPLib::autoload_all_classes();
            $child_classes = array();
            foreach (self::site_classes() as $class_name) {
                do {
                    if (!is_subclass_of($class_name, $base_class)) {
                        continue;
                    }
                    if (is_null($constant_value = self::get_constant($constant_name, $class_name))) {
                        continue;
                    }
                    $child_classes[$constant_value] = $class_name;
                } while (false);
            }
            self::cache_set($cache_key, $child_classes);
        }
        return $child_classes;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @return string[]
  *
  * @future Enhance this to support multiple classes per post type
  * @future Rename to post_classes() and deprecate this name
  */
 static function post_type_classes()
 {
     return WPLib::get_child_classes('WPLib_Post_Base', 'POST_TYPE');
 }
All Usage Examples Of WPLib::get_child_classes