interface ConfigurableRequirementsInterface

ConfigurableRequirementsInterface must be implemented by URL generators that can be configured whether an exception should be generated when the parameters do not match the requirements. It is also possible to disable the requirements check for URL generation completely.

The possible configurations and use-cases:

  • setStrictRequirements(true): Throw an exception for mismatching requirements. This is mostly useful in development environment.
  • setStrictRequirements(false): Don't throw an exception but return null as URL for mismatching requirements and log the problem. Useful when you cannot control all params because they come from third party libs but don't want to have a 404 in production environment. It should log the mismatch so one can review it.
  • setStrictRequirements(null): Return the URL with the given parameters without checking the requirements at all. When generating an URL you should either trust your params or you validated them beforehand because otherwise it would break your link anyway. So in production environment you should know that params always pass the requirements. Thus this option allows to disable the check on URL generation for performance reasons (saving a preg_match for each requirement every time a URL is generated).

@author Fabien Potencier <fabien@symfony.com> @author Tobias Schultze <http://tobion.de>

Hierarchy

Expanded class hierarchy of ConfigurableRequirementsInterface

All classes that implement ConfigurableRequirementsInterface

1 file declares its use of ConfigurableRequirementsInterface
Router.php in drupal/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php

File

drupal/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/ConfigurableRequirementsInterface.php, line 38

Namespace

Symfony\Component\Routing\Generator
View source
interface ConfigurableRequirementsInterface {

  /**
   * Enables or disables the exception on incorrect parameters.
   * Passing null will deactivate the requirements check completely.
   *
   * @param Boolean|null $enabled
   */
  public function setStrictRequirements($enabled);

  /**
   * Returns whether to throw an exception on incorrect parameters.
   * Null means the requirements check is deactivated completely.
   *
   * @return Boolean|null
   */
  public function isStrictRequirements();

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigurableRequirementsInterface::isStrictRequirements public function Returns whether to throw an exception on incorrect parameters. Null means the requirements check is deactivated completely. 1
ConfigurableRequirementsInterface::setStrictRequirements public function Enables or disables the exception on incorrect parameters. Passing null will deactivate the requirements check completely. 1