lithium\analysis\Inspector::_items()
Helper method to get an array of ReflectionMethod or ReflectionProperty objects, wrapped
in a Collection object, and filtered based on a set of options.
Parameters
- 
							ReflectionClass
							$classA reflection class instance from which to fetch. 
- 
							string
							$methodA getter method to call on the ReflectionClassinstance, which will return an array of items, i.e.'getProperties'or'getMethods'.
- 
							array
							$optionsThe options used to filter the resulting method list. - 'names': array of properties for filtering the result.
- 'self': If true (default), only returns properties defined in- $class, excluding properties from inherited classes.
- 'public': If true (default) forces the property to be recognized as public.
 
Returns
objectReturns a Collection object instance containing the results of the items
returned from the call to the method specified in $method, after being passed
through the filters specified in $options.
Source
	protected static function _items($class, $method, $options) {
		$defaults = ['names' => [], 'self' => true, 'public' => true];
		$options += $defaults;
		$params = [
			'getProperties' => ReflectionProperty::IS_PUBLIC | (
				$options['public'] ? 0 : ReflectionProperty::IS_PROTECTED
			)
		];
		$data = isset($params[$method]) ? $class->{$method}($params[$method]) : $class->{$method}();
		if (!empty($options['names'])) {
			$data = array_filter($data, function($item) use ($options) {
				return in_array($item->getName(), (array) $options['names']);
			});
		}
		if ($options['self']) {
			$data = array_filter($data, function($item) use ($class) {
				return ($item->getDeclaringClass()->getName() === $class->getName());
			});
		}
		if ($options['public']) {
			$data = array_filter($data, function($item) { return $item->isPublic(); });
		}
		return Libraries::instance(null, 'collection', compact('data'), static::$_classes);
	}