コード例 #1
0
 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);
     }
 }
コード例 #2
0
ファイル: PhpClassAdapter.php プロジェクト: ilivanoff/www
 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;
 }
コード例 #3
0
 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;
 }
コード例 #4
0
ファイル: PsWpPlugin.php プロジェクト: ilivanoff/ps-sdk-dev
 /**
  * Метод добавляет шорткоды
  * 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));
     }
 }
コード例 #5
0
ファイル: SmartyReplacesIf.php プロジェクト: ilivanoff/www
 /**
  * Выполняет замену смарти-функций на вызов функций данного класса
  */
 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;
 }
コード例 #6
0
ファイル: TestManagerCaller.php プロジェクト: ilivanoff/www
 /**
  * Список методов, доступных для вызова
  */
 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;
 }
コード例 #7
0
ファイル: PsUtilTest.php プロジェクト: ilivanoff/www
 /**
  * @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));
 }
コード例 #8
0
ファイル: PsEnum.php プロジェクト: ilivanoff/www
 public static final function names()
 {
     return PsUtil::getClassMethods(get_called_class(), true, true, true, false, __CLASS__);
 }