protected function registerPluginsImpl() { $pluginType = strtolower(cut_string_end(cut_string_start(get_called_class(), 'Smarty'), 's')); foreach (PsUtil::getClassMethods(get_called_class(), true, true, null, true) as $tagName) { $this->register($tagName, $pluginType); } }
public function getMethodAdapters($public = true, $static = null, $final = null, $checkOwned = true) { $methods = array(); foreach (PsUtil::getClassMethods($this->rc->name, $public, $static, $final, $checkOwned) as $method) { $methods[$method] = PhpMethodAdapter::inst($this->rc->name, $method); } return $methods; }
protected function getPlugins() { $type = strtolower(cut_string_end(cut_string_start($this->CLASS, 'Smarty'), 's')); $result = array(); foreach (PsUtil::getClassMethods($this->CLASS, true, true, null, true) as $method) { $result[$method] = $type; } return $result; }
/** * Метод добавляет шорткоды * TODO - вынести на конфиги */ public static function addShortcodes() { $wpShortcodes = new PsWpShortCodes(); $methods = PsUtil::getClassMethods($wpShortcodes, true, false, true, false); $LOGGER = PsLogger::inst(__CLASS__); $LOGGER->info(); $LOGGER->info(__METHOD__); foreach ($methods as $action) { $LOGGER->info(' + {}', $action); add_shortcode($action, array($wpShortcodes, $action)); } }
/** * Выполняет замену смарти-функций на вызов функций данного класса */ public static function preCompile($source) { $class = __CLASS__; foreach (PsUtil::getClassMethods($class, true, true, true) as $method) { if ($method == __FUNCTION__) { continue; } $source = str_replace('{' . $method . '}', "{if {$class}::{$method}()}", $source); $source = str_replace('{/' . $method . '}', '{/if}', $source); } return $source; }
/** * Список методов, доступных для вызова */ public static function getMethodsList() { if (!AuthManager::isAuthorizedAsAdmin() || PsDefines::isProduction()) { return array(); } if (!is_array(self::$METHODS)) { self::$METHODS = array(); $methodNames = PsUtil::getClassMethods(TestManager::inst(), true, false, true, true); foreach ($methodNames as $name) { $method = new ReflectionMethod(TestManager::inst(), $name); $params['name'] = $name; $params['descr'] = implode("\n", StringUtils::parseMultiLineComments($method->getDocComment())); $params['params'] = array(); /* @var $param ReflectionParameter */ foreach ($method->getParameters() as $param) { $params['params'][] = array('name' => $param->getName(), 'dflt' => $param->isDefaultValueAvailable() ? var_export($param->getDefaultValue(), true) : null); } self::$METHODS[$name] = $params; } } return self::$METHODS; }
/** * @covers PsUtil::getClassMethods */ public function testGetClassMethods() { $this->assertEquals(array('CONSTS'), PsUtil::getClassMethods(new ClassA(), true, true, true)); $this->assertEquals(array('get__DIR__', 'get__FILE__', 'get__CLASS__'), PsUtil::getClassMethods(ClassA::get__CLASS__(), null, true, false)); $this->assertEquals(array('get__DIR__', 'get__FILE__', 'get__CLASS__', 'CONSTS'), PsUtil::getClassMethods(ClassA::get__CLASS__(), null, true, null)); $this->assertEquals(array('public_method'), PsUtil::getClassMethods(ClassA::get__CLASS__(), true, false, false)); $this->assertEquals(array('public_final_method'), PsUtil::getClassMethods(ClassA::get__CLASS__(), true, false, true)); $this->assertEquals(array('public_method', 'public_final_method'), PsUtil::getClassMethods(ClassA::get__CLASS__(), true, false, null)); $this->assertEquals(array('public_final_method', 'protected_final_method', 'private_final_method'), PsUtil::getClassMethods(ClassA::get__CLASS__(), null, false, true)); }
public static final function names() { return PsUtil::getClassMethods(get_called_class(), true, true, true, false, __CLASS__); }