コード例 #1
0
ファイル: AllowPolicy.php プロジェクト: fakeller/archinspec
 /**
  * {@inheritdoc}
  */
 public function isAllowed(NodeInterface $from, NodeInterface $to)
 {
     foreach ($this->getTargets() as $namespace) {
         if ($this->namespaceContains($namespace, $to->getFQName())) {
             return EvaluationResult::allowed($this);
         }
     }
     return EvaluationResult::undefined();
 }
コード例 #2
0
ファイル: DenyPolicy.php プロジェクト: fakeller/archinspec
 /**
  * {@inheritdoc}
  */
 public function isAllowed(NodeInterface $from, NodeInterface $to)
 {
     foreach ($this->getTargets() as $namespace) {
         if ($this->namespaceContains($namespace, $to->getFQName())) {
             return EvaluationResult::denied($this, sprintf("%s has an attached DenyPolicy of namespace %s, preventing use of %s", $from->getFQName(), $namespace, $to->getFQName()));
         }
     }
     return EvaluationResult::undefined();
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function affects(NodeInterface $from, NodeInterface $to)
 {
     foreach ($this->getTargets() as $namespace) {
         if ($this->namespaceContains($namespace, $to->getFQName())) {
             return true;
         }
     }
     return false;
 }
コード例 #4
0
ファイル: SiblingPolicy.php プロジェクト: fakeller/archinspec
 private function parentNamespace(NodeInterface $node)
 {
     $fqcn = $node->getFQName();
     $lastNsSep = strpos($fqcn, '\\');
     if (false === $lastNsSep) {
         // no namespace
         return "";
     } else {
         return substr($fqcn, 0, $lastNsSep);
     }
 }
コード例 #5
0
ファイル: SymfonyPolicy.php プロジェクト: fakeller/archinspec
 private function regexMatchesNode($regex, NodeInterface $node)
 {
     return (bool) preg_match("/{$regex}/i", $node->getFQName());
 }
コード例 #6
0
ファイル: Node.php プロジェクト: fakeller/archinspec
 /**
  * Adds a child to the current node.
  *
  * @param NodeInterface $child
  */
 public function addChild(NodeInterface $child)
 {
     $this->children[$child->getName()] = $child;
 }