You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
/* Copyright (c) 2009 hamcrest.org */
class FactoryClass { /** * @var string */ private $file;
/** * @var ReflectionClass */ private $reflector;
/** * @var array */ private $methods;
public function __construct($file, ReflectionClass $class) { $this->file = $file; $this->reflector = $class; $this->extractFactoryMethods(); }
public function extractFactoryMethods() { $this->methods = array(); foreach ($this->getPublicStaticMethods() as $method) { if ($method->isFactory()) { $this->methods[] = $method; } } }
public function getPublicStaticMethods() { $methods = array(); foreach ($this->reflector->getMethods(ReflectionMethod::IS_STATIC) as $method) { if ($method->isPublic() && $method->getDeclaringClass() == $this->reflector) { $methods[] = new FactoryMethod($this, $method); } } return $methods; }
public function getFile() { return $this->file; }
public function getName() { return $this->reflector->name; }
public function isFactory() { return !empty($this->methods); }
public function getMethods() { return $this->methods; } }
|