/** * Adding method to class. * @param string method name * @param mixed callback or closure * @return mixed */ public static function extensionMethod($name, $callback = NULL) { if (strpos($name, '::') === FALSE) { $class = get_called_class(); } else { list($class, $name) = explode('::', $name); } $class = new Reflection\ClassType($class); if ($callback === NULL) { return $class->getExtensionMethod($name); } else { $class->setExtensionMethod($name, $callback); } }