コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function handle($code)
 {
     if ($this->handlers->isEmpty()) {
         throw new HandleException(self::class, 'There are no handlers defined.');
     }
     foreach ($this->handlers as $handler) {
         $handler->handle($code);
     }
 }
コード例 #2
0
 /**
  * Adds a validator to the beginning of the chain
  *
  * If $breakChainOnFailure is true, then if the validator fails, the next validator in the chain,
  * if one exists, will not be executed.
  *
  * @param  ValidatorInterface      $validator
  * @param  bool                 $breakChainOnFailure
  * @return ValidatorChain Provides a fluent interface
  */
 public function prependValidator(ValidatorInterface $validator, $breakChainOnFailure = false)
 {
     $priority = self::DEFAULT_PRIORITY;
     if (!$this->validators->isEmpty()) {
         $extractedNodes = $this->validators->toArray(PriorityQueue::EXTR_PRIORITY);
         rsort($extractedNodes, SORT_NUMERIC);
         $priority = $extractedNodes[0] + 1;
     }
     $this->validators->insert(['instance' => $validator, 'breakChainOnFailure' => (bool) $breakChainOnFailure], $priority);
     return $this;
 }
コード例 #3
0
ファイル: ValidatorChain.php プロジェクト: Flesh192/magento
 /**
  * Adds a validator to the beginning of the chain
  *
  * If $breakChainOnFailure is true, then if the validator fails, the next validator in the chain,
  * if one exists, will not be executed.
  *
  * @param  ValidatorInterface      $validator
  * @param  bool                 $breakChainOnFailure
  * @return ValidatorChain Provides a fluent interface
  */
 public function prependValidator(ValidatorInterface $validator, $breakChainOnFailure = false)
 {
     $priority = self::DEFAULT_PRIORITY;
     if (!$this->validators->isEmpty()) {
         $queue = $this->validators->getIterator();
         $queue->setExtractFlags(PriorityQueue::EXTR_PRIORITY);
         $extractedNode = $queue->extract();
         $priority = $extractedNode[0] + 1;
     }
     $this->validators->insert(array('instance' => $validator, 'breakChainOnFailure' => (bool) $breakChainOnFailure), $priority);
     return $this;
 }
コード例 #4
0
 public function testCloningAlsoClonesQueue()
 {
     $foo = new \stdClass();
     $foo->name = 'bar';
     $queue = new PriorityQueue();
     $queue->insert($foo, 1);
     $queue->insert($foo, 2);
     $queueClone = clone $queue;
     while (!$queue->isEmpty()) {
         $this->assertSame($foo, $queue->top());
         $queue->remove($queue->top());
     }
     $this->assertTrue($queue->isEmpty());
     $this->assertFalse($queueClone->isEmpty());
     $this->assertEquals(2, $queueClone->count());
     while (!$queueClone->isEmpty()) {
         $this->assertSame($foo, $queueClone->top());
         $queueClone->remove($queueClone->top());
     }
     $this->assertTrue($queueClone->isEmpty());
 }