original_string: public static function skeleton_properties($type)
  	{
  		$class = get_called_class();
  
  		if (isset(static::$_skeleton_cached[$class][$type]))
  		{
  			return static::$_skeleton_cached[$class][$type];
  		}
  
  		$var = '_' . $type . '_properties';
  		$properties = [];
  
  		if (property_exists($class, $var))
  		{
  			$properties = static::$$var;
  		}
  
  		return static::$_skeleton_cached[$class][$type] = static::compile_properties($properties);
  	}
code: public static function skeleton_properties($type)
  	{
  		$class = get_called_class();
  
  		if (isset(static::$_skeleton_cached[$class][$type]))
  		{
  			return static::$_skeleton_cached[$class][$type];
  		}
  
  		$var = '_' . $type . '_properties';
  		$properties = [];
  
  		if (property_exists($class, $var))
  		{
  			$properties = static::$$var;
  		}
  
  		return static::$_skeleton_cached[$class][$type] = static::compile_properties($properties);
  	}
code_tokens: public static function skeleton_properties ( $ type ) { $ class = get_called_class ( ) ; if ( isset ( static :: $ _skeleton_cached [ $ class ] [ $ type ] ) ) { return static :: $ _skeleton_cached [ $ class ] [ $ type ] ; } $ var = '_' . $ type . '_properties' ; $ properties = [ ] ; if ( property_exists ( $ class , $ var ) ) { $ properties = static :: $ $ var ; } return static :: $ _skeleton_cached [ $ class ] [ $ type ] = static :: compile_properties ( $ properties ) ; }
docstring: Handles property caching
  
  @param string $type
  
  @return []
docstring_tokens: Handles property caching