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


PHP ClassNode::getInterfaces方法代碼示例

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


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

示例1: MethodNode

 /**
  * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
  */
 function it_discovers_api_using_phpdoc_from_extended_parent_interfaces($node)
 {
     $node->getParentClass()->willReturn('spec\\Prophecy\\Doubler\\ClassPatch\\MagicalApiImplementedExtended');
     $node->getInterfaces()->willReturn(array());
     $node->addMethod(new MethodNode('implementedMethod'))->shouldBeCalled();
     $this->apply($node);
 }
開發者ID:phpspec,項目名稱:prophecy,代碼行數:10,代碼來源:MagicCallPatchSpec.php

示例2: supports

 /**
  * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate.
  *
  * @param ClassNode $node
  *
  * @return bool
  */
 public function supports(ClassNode $node)
 {
     if (in_array('Iterator', $node->getInterfaces())) {
         return FALSE;
     }
     if (in_array('IteratorAggregate', $node->getInterfaces())) {
         return FALSE;
     }
     foreach ($node->getInterfaces() as $interface) {
         if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) {
             continue;
         }
         if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) {
             continue;
         }
         if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) {
             continue;
         }
         return TRUE;
     }
     return FALSE;
 }
開發者ID:mrbadao,項目名稱:api-official,代碼行數:29,代碼來源:TraversablePatch.php

示例3: apply

 /**
  * Discover Magical API
  *
  * @param ClassNode $node
  */
 public function apply(ClassNode $node)
 {
     $types = array_filter($node->getInterfaces(), function ($interface) {
         return 0 !== strpos($interface, 'Prophecy\\');
     });
     $types[] = $node->getParentClass();
     foreach ($types as $type) {
         $reflectionClass = new \ReflectionClass($type);
         $tagList = $this->tagRetriever->getTagList($reflectionClass);
         foreach ($tagList as $tag) {
             $methodName = $tag->getMethodName();
             if (empty($methodName)) {
                 continue;
             }
             if (!$reflectionClass->hasMethod($methodName)) {
                 $methodNode = new MethodNode($methodName);
                 $methodNode->setStatic($tag->isStatic());
                 $node->addMethod($methodNode);
             }
         }
     }
 }
開發者ID:phpspec,項目名稱:prophecy,代碼行數:27,代碼來源:MagicCallPatch.php

示例4:

 /**
  * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
  */
 function it_does_not_support_class_that_implements_IteratorAggregate($node)
 {
     $node->getInterfaces()->willReturn(array('Traversable', 'IteratorAggregate'));
     $this->supports($node)->shouldReturn(false);
 }
開發者ID:TheTypoMaster,項目名稱:SPHERE-Framework,代碼行數:8,代碼來源:TraversablePatchSpec.php

示例5: strtr

    /**
     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
     */
    function it_wraps_class_in_namespace_if_it_is_namespaced($class)
    {
        $class->getParentClass()->willReturn('stdClass');
        $class->getInterfaces()->willReturn(array('Prophecy\\Doubler\\Generator\\MirroredInterface'));
        $class->getProperties()->willReturn(array());
        $class->getMethods()->willReturn(array());
        $code = $this->generate('My\\Awesome\\CustomClass', $class);
        $expected = <<<'PHP'
namespace My\Awesome {
class CustomClass extends \stdClass implements \Prophecy\Doubler\Generator\MirroredInterface {


}
}
PHP;
        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
        $code->shouldBe($expected);
    }
開發者ID:laerciobernardo,項目名稱:CodeDelivery,代碼行數:21,代碼來源:ClassCodeGeneratorSpec.php


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