<?php /** * base include file for SimpleTest * @package SimpleTest * @subpackage UnitTester * @version $Id$ */ /** * Version specific reflection API. * @package SimpleTest * @subpackage UnitTester */ class SimpleReflection { protected $_interface; /** * Stashes the class/interface. * @param string $interface Class or interface * to inspect. */ function SimpleReflection($interface) { $this->_interface = $interface; } /** * Checks that a class has been declared. * @return boolean True if defined. * @access public */ function classExists() { return class_exists($this->_interface); } /** * Needed to kill the autoload feature in PHP5 * for classes created dynamically. * @return boolean True if defined. * @access public */ function classExistsSansAutoload() { return class_exists($this->_interface); } /** * Checks that a class or interface has been * declared. * @return boolean True if defined. * @access public */ function classOrInterfaceExists() { return class_exists($this->_interface); } /** * Needed to kill the autoload feature in PHP5 * for classes created dynamically. * @return boolean True if defined. * @access public */ function classOrInterfaceExistsSansAutoload() { return class_exists($this->_interface); } /** * Gets the list of methods on a class or * interface. * @returns array List of method names. * @access public */ function getMethods() { return get_class_methods($this->_interface); } /** * Gets the list of interfaces from a class. If the * class name is actually an interface then just that * interface is returned. * @returns array List of interfaces. * @access public */ function getInterfaces() { return array(); } /** * Finds the parent class name. * @returns string Parent class name. * @access public */ function getParent() { return strtolower(get_parent_class($this->_interface)); } /** * Determines if the class is abstract, which for PHP 4 * will never be the case. * @returns boolean True if abstract. * @access public */ function isAbstract() { return false; } /** * Gets the source code matching the declaration * of a method. * @param string $method Method name. * @access public */ function getSignature($method) { return "function $method()"; } } ?>