This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Validator/ConstraintViolationInterface.php

137 lines
4.3 KiB
PHP
Raw Normal View History

<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Validator;
/**
* A violation of a constraint that happened during validation.
*
* For each constraint that fails during validation one or more violations are
* created. The violations store the violation message, the path to the failing
* element in the validation graph and the root element that was originally
* passed to the validator. For example, take the following graph:
*
* <pre>
* (Person)---(firstName: string)
* \
* (address: Address)---(street: string)
* </pre>
*
* If the <tt>Person</tt> object is validated and validation fails for the
* "firstName" property, the generated violation has the <tt>Person</tt>
* instance as root and the property path "firstName". If validation fails
* for the "street" property of the related <tt>Address</tt> instance, the root
* element is still the person, but the property path is "address.street".
*
* @author Bernhard Schussek <bschussek@gmail.com>
*
* @api
*/
interface ConstraintViolationInterface
{
/**
* Returns the violation message.
*
* @return string The violation message.
*
* @api
*/
public function getMessage();
/**
* Returns the raw violation message.
*
* The raw violation message contains placeholders for the parameters
* returned by {@link getMessageParameters}. Typically you'll pass the
* message template and parameters to a translation engine.
*
* @return string The raw violation message.
*
* @api
*/
public function getMessageTemplate();
/**
* Returns the parameters to be inserted into the raw violation message.
*
* @return array A possibly empty list of parameters indexed by the names
* that appear in the message template.
*
* @see getMessageTemplate
*
* @api
*/
public function getMessageParameters();
/**
* Returns a number for pluralizing the violation message.
*
* For example, the message template could have different translation based
* on a parameter "choices":
*
* <ul>
* <li>Please select exactly one entry. (choices=1)</li>
* <li>Please select two entries. (choices=2)</li>
* </ul>
*
* This method returns the value of the parameter for choosing the right
* pluralization form (in this case "choices").
*
* @return integer|null The number to use to pluralize of the message.
*/
public function getMessagePluralization();
/**
* Returns the root element of the validation.
*
* @return mixed The value that was passed originally to the validator when
* the validation was started. Because the validator traverses
* the object graph, the value at which the violation occurs
* is not necessarily the value that was originally validated.
*
* @api
*/
public function getRoot();
/**
* Returns the property path from the root element to the violation.
*
* @return string The property path indicates how the validator reached
* the invalid value from the root element. If the root
* element is a <tt>Person</tt> instance with a property
* "address" that contains an <tt>Address</tt> instance
* with an invalid property "street", the generated property
* path is "address.street". Property access is denoted by
* dots, while array access is denoted by square brackets,
* for example "addresses[1].street".
*
* @api
*/
public function getPropertyPath();
/**
* Returns the value that caused the violation.
*
* @return mixed The invalid value that caused the validated constraint to
* fail.
*
* @api
*/
public function getInvalidValue();
/**
* Returns a machine-digestible error code for the violation.
*
* @return mixed The error code.
*/
public function getCode();
}