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.
Go to file
Fabien Potencier 5ce3a61660 feature #31083 [Validator] Allow objects implementing __toString() to be used as violation messages (mdlutz24)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] Allow objects implementing __toString() to be used as violation messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | I didn't see a doc on violations to update, but I'm happy to do documentation if somone can suggest the best place to do it.

Currently in the Drupal project we use Translatable Markup object to hold most strings and currently pass them in as Constraint Violation messages. In Symfony 3 this works but with the added typehinting in Symfony 4, these markup objects are rendered into strings at the time of the violation creation.  This causes any html in the message string to be considered unsafe by twig later in our rendering process.  This pr explicitly allows objects implementing a __toString() method to be used as violation messages, and the violation will save and return the original stringable object.

See https://www.drupal.org/project/drupal/issues/3029540 For our Drupal issue on the subject.

Commits
-------

79f4dcd2dc [Validator] Allow objects implementing __toString() to be used as violation messages
2019-08-09 08:10:48 +02:00
.composer Drop hirak/prestissimo 2016-05-12 07:44:15 -05:00
.github add yceruto as code owner of the ErrorRenderer component 2019-08-06 14:17:02 +02:00
src/Symfony feature #31083 [Validator] Allow objects implementing __toString() to be used as violation messages (mdlutz24) 2019-08-09 08:10:48 +02:00
.appveyor.yml Merge branch '3.4' into 4.2 2019-04-12 17:32:33 +02:00
.editorconfig Update .editorconfig 2018-09-06 16:22:56 +02:00
.gitignore Run the phpunit-bridge from a PR 2019-08-02 17:46:19 +02:00
.php_cs.dist Ignore ErrorHandler DebugClassLoaderTest class in PHP-CS-Fixer config 2019-08-06 12:43:51 +02:00
.travis.yml Merge branch '4.3' into 4.4 2019-08-08 14:07:40 +02:00
CHANGELOG-4.0.md Merge branch '3.4' into 4.1 2018-08-01 18:22:14 +02:00
CHANGELOG-4.1.md updated CHANGELOG for 4.1.10 2019-01-06 17:16:07 +01:00
CHANGELOG-4.2.md updated CHANGELOG for 4.2.10 2019-06-26 16:19:37 +02:00
CHANGELOG-4.3.md updated CHANGELOG for 4.3.3 2019-07-28 09:10:02 +02:00
CODE_OF_CONDUCT.md Added the Code of Conduct file 2018-10-10 03:13:30 -07:00
composer.json Merge branch '4.3' into 4.4 2019-08-07 14:00:28 +02:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md update CONTRIBUTORS for 3.4.30 2019-07-27 19:14:05 +02:00
LICENSE update year in license files 2019-01-01 14:45:19 +01:00
link Merge branch '3.4' into 4.2 2019-05-20 18:15:26 +02:00
phpunit bump phpunit-bridge cache-id 2019-08-06 08:41:45 +02:00
phpunit.xml.dist [Cache] Add optimized FileSystem & Redis TagAware Adapters 2019-04-24 07:47:35 +02:00
README.md Merge branch '2.8' into 3.4 2018-05-25 16:50:57 +02:00
UPGRADE-4.0.md Merge branch '3.4' into 4.2 2019-06-06 12:03:46 +02:00
UPGRADE-4.1.md Merge branch '4.0' into 4.1 2018-05-31 12:17:53 +02:00
UPGRADE-4.2.md [Validator] fix deprecation layer of ValidatorBuilder 2019-06-06 19:07:55 +02:00
UPGRADE-4.3.md Clarify deprecations for framework.templating 2019-07-23 09:11:32 +02:00
UPGRADE-4.4.md feature #32122 [HttpFoundation] deprecate HeaderBag::get() returning an array and add all($key) instead (Simperfit) 2019-08-08 20:15:43 +02:00
UPGRADE-5.0.md feature #32122 [HttpFoundation] deprecate HeaderBag::get() returning an array and add all($key) instead (Simperfit) 2019-08-08 20:15:43 +02:00

Symfony is a PHP framework for web applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.