當前位置: 首頁>>代碼示例>>PHP>>正文


PHP PresenterComponentReflection::hasCallableMethod方法代碼示例

本文整理匯總了PHP中Nette\Application\UI\PresenterComponentReflection::hasCallableMethod方法的典型用法代碼示例。如果您正苦於以下問題:PHP PresenterComponentReflection::hasCallableMethod方法的具體用法?PHP PresenterComponentReflection::hasCallableMethod怎麽用?PHP PresenterComponentReflection::hasCallableMethod使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Nette\Application\UI\PresenterComponentReflection的用法示例。


在下文中一共展示了PresenterComponentReflection::hasCallableMethod方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: createRequest


//.........這裏部分代碼省略.........
             }
             $presenter = substr($destination, 1, $a - 1);
         } else {
             // relative
             $presenter = $this->getName();
             $b = strrpos($presenter, ':');
             if ($b === FALSE) {
                 // no module
                 $presenter = substr($destination, 0, $a);
             } else {
                 // with module
                 $presenter = substr($presenter, 0, $b + 1) . substr($destination, 0, $a);
             }
         }
         try {
             $presenterClass = $presenterFactory->getPresenterClass($presenter);
         } catch (Application\InvalidPresenterException $e) {
             throw new InvalidLinkException($e->getMessage(), NULL, $e);
         }
     }
     // PROCESS SIGNAL ARGUMENTS
     if (isset($signal)) {
         // $component must be IStatePersistent
         $reflection = new PresenterComponentReflection(get_class($component));
         if ($signal === 'this') {
             // means "no signal"
             $signal = '';
             if (array_key_exists(0, $args)) {
                 throw new InvalidLinkException("Unable to pass parameters to 'this!' signal.");
             }
         } elseif (strpos($signal, self::NAME_SEPARATOR) === FALSE) {
             // counterpart of signalReceived() & tryCall()
             $method = $component->formatSignalMethod($signal);
             if (!$reflection->hasCallableMethod($method)) {
                 throw new InvalidLinkException("Unknown signal '{$signal}', missing handler {$reflection->name}::{$method}()");
             }
             if ($args) {
                 // convert indexed parameters to named
                 self::argsToParams(get_class($component), $method, $args);
             }
         }
         // counterpart of IStatePersistent
         if ($args && array_intersect_key($args, $reflection->getPersistentParams())) {
             $component->saveState($args);
         }
         if ($args && $component !== $this) {
             $prefix = $component->getUniqueId() . self::NAME_SEPARATOR;
             foreach ($args as $key => $val) {
                 unset($args[$key]);
                 $args[$prefix . $key] = $val;
             }
         }
     }
     // PROCESS ARGUMENTS
     if (is_subclass_of($presenterClass, __CLASS__)) {
         if ($action === '') {
             $action = self::DEFAULT_ACTION;
         }
         $current = ($action === '*' || strcasecmp($action, $this->action) === 0) && $presenterClass === get_class($this);
         $reflection = new PresenterComponentReflection($presenterClass);
         if ($args || $destination === 'this') {
             // counterpart of run() & tryCall()
             $method = $presenterClass::formatActionMethod($action);
             if (!$reflection->hasCallableMethod($method)) {
                 $method = $presenterClass::formatRenderMethod($action);
                 if (!$reflection->hasCallableMethod($method)) {
開發者ID:pdostal,項目名稱:nette-blog,代碼行數:67,代碼來源:Presenter.php


注:本文中的Nette\Application\UI\PresenterComponentReflection::hasCallableMethod方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。