You are here

class TraversalStrategy in Plug 7

Specifies whether and how a traversable object should be traversed.

If the node traverser traverses a node whose value is an instance of {@link \Traversable}, and if that node is either a class node or if cascading is enabled, then the node's traversal strategy will be checked. Depending on the requested traversal strategy, the node traverser will iterate over the object and cascade each object or collection returned by the iterator.

The traversal strategy is ignored for arrays. Arrays are always iterated.

@since 2.1 @author Bernhard Schussek <bschussek@gmail.com>

Hierarchy

Expanded class hierarchy of TraversalStrategy

See also

CascadingStrategy

1 file declares its use of TraversalStrategy
RecursiveContextualValidator.php in lib/Symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php

File

lib/Symfony/validator/Symfony/Component/Validator/Mapping/TraversalStrategy.php, line 31

Namespace

Symfony\Component\Validator\Mapping
View source
class TraversalStrategy {

  /**
   * Specifies that a node's value should be iterated only if it is an
   * instance of {@link \Traversable}.
   */
  const IMPLICIT = 1;

  /**
   * Specifies that a node's value should never be iterated.
   */
  const NONE = 2;

  /**
   * Specifies that a node's value should always be iterated. If the value is
   * not an instance of {@link \Traversable}, an exception should be thrown.
   */
  const TRAVERSE = 4;

  /**
   * Specifies that nested instances of {@link \Traversable} should never be
   * iterated. Can be combined with {@link IMPLICIT} or {@link TRAVERSE}.
   *
   * @deprecated This constant was added for backwards compatibility only.
   *             It will be removed in Symfony 3.0.
   * @internal
   */
  const STOP_RECURSION = 8;

  /**
   * Not instantiable.
   */
  private function __construct() {
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TraversalStrategy::IMPLICIT constant Specifies that a node's value should be iterated only if it is an instance of {@link \Traversable}.
TraversalStrategy::NONE constant Specifies that a node's value should never be iterated.
TraversalStrategy::STOP_RECURSION Deprecated constant Specifies that nested instances of {@link \Traversable} should never be iterated. Can be combined with {@link IMPLICIT} or {@link TRAVERSE}.
TraversalStrategy::TRAVERSE constant Specifies that a node's value should always be iterated. If the value is not an instance of {@link \Traversable}, an exception should be thrown.
TraversalStrategy::__construct private function Not instantiable.