Commit Graph

487 Commits

Author SHA1 Message Date
Jérémy DECOOL
dd5b8f16f5 [Serializer] Add default object class resolver 2019-04-10 13:09:05 +02:00
Fabien Potencier
f794e41544 minor #31005 [Serializer] take setIgnoredAttributes() deprecation into account (xabbuh)
This PR was merged into the 4.2 branch.

Discussion
----------

[Serializer] take setIgnoredAttributes() deprecation into account

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

4134be127a take setIgnoredAttributes() deprecation into account
2019-04-08 16:14:28 +02:00
David Buchmann
37891525f7 [serializer] validate that the specified callbacks and max_depth_handler are actually callable 2019-04-08 15:09:58 +02:00
Christian Flothmann
4134be127a take setIgnoredAttributes() deprecation into account 2019-04-08 13:47:38 +02:00
Christian Flothmann
ec41d76624 Merge branch '3.4' into 4.2
* 3.4:
  [Serializer] Respect ignored attributes in cache key of normalizer
  fix resetting the COLUMN environment variable
  Fix TestRunner compatibility to PhpUnit 8
  prevent mixup of the object to populate
2019-04-08 13:36:05 +02:00
David Buchmann
926d228877 [Serializer] Respect ignored attributes in cache key of normalizer 2019-04-08 12:10:02 +02:00
David Buchmann
fdb668e051 prevent mixup of the object to populate 2019-04-07 14:49:34 +02:00
Raulnet
61547a291d fix testIgnoredAttributesInContext 2019-04-01 18:12:17 +02:00
Fabien Potencier
2fb2508cee Merge branch '3.4' into 4.2
* 3.4:
  [Serializer] Added check of constuctor modifiers to AbstractNormalizer
  [Intl] Simplify the compile binary
  [Routing] Fix routes annotation loading with glob pattern
  Fix hardcoded hotPathTagName
  [Validator] Improve constraint default option check
  [Validator] Fix annotation default for @Count and @Length
  Update composer.json
  Fix getSetMethodNormalizer to correctly ignore the attributes specified in "ignored_attributes"
  Add missing "vi" translations
  add missing German translations
  [Intl] Fix test
  added missing translation
  use behavior instead of behaviour
  [Validator] Translate JSON message to Hungarian
  [Validator] fix sr_Latn translations
  [FrameworkBundle][HttpFoundation] make session service resettable
2019-03-30 16:58:42 +01:00
Emmanuel BORGES
606d8d370d Fix getSetMethodNormalizer to correctly ignore the attributes specified in "ignored_attributes" 2019-03-27 09:43:12 +01:00
Joel Wurtz
1d8b5af3f0 [Serializer] Use object class resolver when extracting attributes 2019-03-27 07:23:48 +01:00
Fabien Potencier
b82d3b969f Merge branch '3.4' into 4.2
* 3.4:
  moved XSD to HTTPS
2019-03-04 11:37:56 +01:00
Fabien Potencier
95e90b87b6 moved XSD to HTTPS 2019-03-04 11:06:18 +01:00
Nicolas Grekas
adbdec838a Merge branch '4.1' into 4.2
* 4.1:
  [Routing] dont redirect routes with greedy trailing vars with no explicit slash
  skip native serialize among child and parent serializable objects
  [Routing] backport tests from 4.1
  [MonologBridge] Remove unused local variable
  Remove unreachable code
  Add PackageNameTest to ConfigurationTest also add in the changelog the corresponding entry to this PR
  Support use of hyphen in asset package name
  Remove gendered pronouns
  Replace gender by eye color in tests
  [Security] dont do nested calls to serialize()
2019-01-29 10:49:29 +01:00
Nicolas Grekas
78c23c7838 Merge branch '3.4' into 4.1
* 3.4:
  skip native serialize among child and parent serializable objects
  [Routing] backport tests from 4.1
  Add PackageNameTest to ConfigurationTest also add in the changelog the corresponding entry to this PR
  Support use of hyphen in asset package name
  Remove gendered pronouns
  Replace gender by eye color in tests
  [Security] dont do nested calls to serialize()
2019-01-29 10:21:38 +01:00
Raphaëll Roussel
72180342b7 Replace gender by eye color in tests 2019-01-26 20:55:54 +01:00
Nicolas Grekas
62c595a649 Merge branch '4.1' into 4.2
* 4.1:
  [HttpFoundation] Check file exists before unlink
  [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'
  [Translation] Concatenated translation messages
  [Form] ensure compatibility with older PHPUnit mocks
  [Serializer] Docblock about throwing exceptions on serializer
  [Debug][ErrorHandler] Preserve our error handler when a logger set another one
  [Form] Changed UrlType input type to text when default_protocol is not null
  [Bugfix] MemcachedSessionHandler::close() must close connection
2019-01-25 15:35:16 +01:00
Nicolas Grekas
02fe23d064 Merge branch '3.4' into 4.1
* 3.4:
  [HttpFoundation] Check file exists before unlink
  [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'
  [Translation] Concatenated translation messages
  [Form] ensure compatibility with older PHPUnit mocks
  [Serializer] Docblock about throwing exceptions on serializer
  [Debug][ErrorHandler] Preserve our error handler when a logger set another one
  [Form] Changed UrlType input type to text when default_protocol is not null
  [Bugfix] MemcachedSessionHandler::close() must close connection
2019-01-25 15:34:37 +01:00
Christian Flothmann
0d9de7e7e3 [Form] ensure compatibility with older PHPUnit mocks 2019-01-25 10:38:07 +01:00
Fabien Potencier
d2098d7e5d fixed CS 2019-01-16 21:35:37 +01:00
Fabien Potencier
c0323bd24b Merge branch '4.1' into 4.2
* 4.1:
  fixed tests
  fixed CS
  fixed CS
  fixed CS
  fixed short array CS in comments
  fixed CS in ExpressionLanguage fixtures
  fixed CS in generated files
  fixed CS on generated container files
  fixed CS on Form PHP templates
  fixed CS on YAML fixtures
  fixed fixtures
  switched array() to []
2019-01-16 21:31:39 +01:00
Fabien Potencier
d58b5c3b76 fixed CS 2019-01-16 19:35:49 +01:00
Fabien Potencier
572864b223 Merge branch '3.4' into 4.1
* 3.4:
  fixed CS
  fixed short array CS in comments
  fixed CS in ExpressionLanguage fixtures
  fixed CS in generated files
  fixed CS on generated container files
  fixed CS on Form PHP templates
  fixed CS on YAML fixtures
  fixed fixtures
  switched array() to []
2019-01-16 19:21:11 +01:00
Fabien Potencier
33a001e460 switched array() to [] 2019-01-16 10:39:14 +01:00
Nicolas Grekas
b88728a13a Merge branch '4.1' into 4.2
* 4.1:
  Fix typos in doc blocks
  [Debug] ignore underscore vs backslash namespaces in DebugClassLoader
  [TwigBridge][Form] Prevent multiple rendering of form collection prototypes
  [FrameworkBundle] fix describing routes with no controllers
  [DI] move RegisterServiceSubscribersPass before DecoratorServicePass
  Update ValidationListener.php
  [Yaml] ensures that the mb_internal_encoding is reset to its initial value
  [WebLink] Fixed documentation link
  [Security] getTargetPath of TargetPathTrait must return string or null
  [Hackday][Serializer] Deserialization ignores argument type hint from phpdoc for array in constructor argument
  Optimize perf by replacing call_user_func with dynamic vars
  [Routing] fix dumping same-path routes with placeholders
  [Security] defer log message in guard authenticator
  [Validator] Added IBAN format for Vatican City State
  merge conflicts
  filter out invalid Intl values
  filter out invalid language values
  [Validator] Fixed grouped composite constraints
  [Form] Filter arrays out of scalar form types
  Fix HeaderBag::get phpdoc
2018-12-13 13:39:50 +01:00
Nicolas Grekas
547bf26eee Merge branch '3.4' into 4.1
* 3.4:
  [Debug] ignore underscore vs backslash namespaces in DebugClassLoader
  [TwigBridge][Form] Prevent multiple rendering of form collection prototypes
  [FrameworkBundle] fix describing routes with no controllers
  [DI] move RegisterServiceSubscribersPass before DecoratorServicePass
  Update ValidationListener.php
  [Yaml] ensures that the mb_internal_encoding is reset to its initial value
  [WebLink] Fixed documentation link
  [Security] getTargetPath of TargetPathTrait must return string or null
  [Hackday][Serializer] Deserialization ignores argument type hint from phpdoc for array in constructor argument
  [Security] defer log message in guard authenticator
  merge conflicts
  Fix HeaderBag::get phpdoc
2018-12-13 13:30:33 +01:00
Fabien Potencier
326ebaabaa bug #29513 [Hackday][Serializer] Deserialization ignores argument type hint from phpdoc for array in constructor argument (karser)
This PR was squashed before being merged into the 3.4 branch (closes #29513).

Discussion
----------

[Hackday][Serializer] Deserialization ignores argument type hint from phpdoc for array in constructor argument

| Q             | A
| ------------- | ---
| Branch?       | 3.4 and up to 4.2
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28825
| License       | MIT

This is a fix of #28825 big thanks @dunglas and @xabbuh

Commits
-------

8741d00d6e [Hackday][Serializer] Deserialization ignores argument type hint from phpdoc for array in constructor argument
2018-12-10 04:34:10 +01:00
karser
8741d00d6e [Hackday][Serializer] Deserialization ignores argument type hint from phpdoc for array in constructor argument 2018-12-10 04:34:01 +01:00
Christian Flothmann
3411e91e86 Merge branch '4.1' into 4.2
* 4.1:
  change timezone to fix tests on Windows
  bumped Symfony version to 4.1.10
  updated VERSION for 4.1.9
  updated CHANGELOG for 4.1.9
  bumped Symfony version to 3.4.21
  updated VERSION for 3.4.20
  update CONTRIBUTORS for 3.4.20
  updated CHANGELOG for 3.4.20
2018-12-08 12:13:24 +00:00
Christian Flothmann
23e5e45e78 Merge branch '3.4' into 4.1
* 3.4:
  change timezone to fix tests on Windows
  bumped Symfony version to 3.4.21
  updated VERSION for 3.4.20
  update CONTRIBUTORS for 3.4.20
  updated CHANGELOG for 3.4.20
2018-12-08 12:11:43 +00:00
Christian Flothmann
01a27e577c change timezone to fix tests on Windows
As I understand the failing tests timezones have changed in Russia in
2016, but this is not reflected in the timezone database used on
AppVeyor. Since the tests do not depend on a particular timezone (it's
only important for it to be different from UTC) we should safely be able
to switch to another timezone.
2018-12-07 15:51:05 +00:00
Nicolas Grekas
2c00c917db Merge branch '4.1' into 4.2
* 4.1:
  [Serializer] fixed DateTimeNormalizer to maintain microseconds when a different timezone required
  [Routing] fix taking verb into account when redirecting
  [DI] Fix dumping expressions accessing single-use private services
  [WebProfilerBundle] Split form field heading
2018-12-02 14:25:28 +01:00
Nicolas Grekas
22795af29e Merge branch '3.4' into 4.1
* 3.4:
  [Serializer] fixed DateTimeNormalizer to maintain microseconds when a different timezone required
  [Routing] fix taking verb into account when redirecting
  [WebProfilerBundle] Split form field heading
2018-12-02 14:22:14 +01:00
Vitaliy Ryaboy
2bf8a1cae6 [Serializer] fixed DateTimeNormalizer to maintain microseconds when a different timezone required 2018-12-02 14:20:19 +01:00
Nicolas Grekas
0aa4273b39 Merge branch '4.1'
* 4.1:
  Change button_widget class to btn-primary
  [Serializer] Allow null values when denormalizing with constructor missing data
  [Dotenv] dont use getenv() to read SYMFONY_DOTENV_VARS
  [HttpFoundation] Fixed PHP doc of ParameterBag::getBoolean
  [HttpFoundation] replace any preexisting Content-Type headers
2018-11-08 23:01:02 +01:00
Daniel Gorgan
5fd0f3f453
[Serializer] Allow null values when denormalizing with constructor missing data 2018-11-08 22:01:52 +01:00
Kévin Dunglas
52b186a210
[Serializer] Refactor and uniformize the config by introducing a default context 2018-10-23 08:24:47 +02:00
Bruno MATEU
faf8b009dc [Serializer] fix MetadataAwareNameConverter break denormalization 2018-10-17 17:16:10 +02:00
Fabien Potencier
b399527ba1 feature #28815 YamlEncoder handle yml format (kevin-biig)
This PR was merged into the 4.2-dev branch.

Discussion
----------

YamlEncoder handle yml format

| Q             | A
| ------------- | ---
| Branch?       | ?
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28768
| License       | MIT

`Symfony\Component\Serializer\Encoder\YamlEncoder` now handle the `yml` format too

```
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\YamlEncoder;

$serializer = new Serializer([], [new YamlEncoder()]);
$content = file_get_contents(__DIR__ . '/test.yml');
$data = $serializer->decode($content, YamlEncoder::ALTERNATIVE_FORMAT);
```

Let me know if something is wrong for you

Commits
-------

d8640f965b YamlEncoder handle yml extension
2018-10-11 11:09:58 -07:00
Kevin Grenier
d8640f965b YamlEncoder handle yml extension 2018-10-11 15:09:10 +02:00
Fabien Bourigault
d1d1ceb38e
[Serialized] allow configuring the serialized name of properties through metadata 2018-10-05 09:43:51 +02:00
Kévin Dunglas
d3c5055f7b [Serializer] Add an option to skip null values 2018-10-02 17:09:21 +02:00
Fabien Potencier
9db435ed0c feature #27819 [Serializer] deprecated normalizers and encoders who dont implement the base interfaces (rodnaph)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Serializer] deprecated normalizers and encoders who dont implement the base interfaces

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | None
| License       | MIT
| Doc PR        | None

Currently the `Serializer` can be constructed with any object regardless of whether or not it implements `NormalizerInterface` or `DenormalizerInterface`. This object will then be ignored when getting a normalizer/denormalizer, so in effect silently ignored for serializer operations.

This change throws an exception on construct if a given normalizer object does not implement one of these interfaces - are there use cases where this would not be true?

Commits
-------

cbc2be8ba8 [Serializer] deprecated normalizers and encoders who dont implement the base interfaces
2018-09-25 11:53:27 +02:00
Nicolas Grekas
1fc66ff080 Merge branch '4.1'
* 4.1:
  Fix CS
  Allow reuse of Session between requests
  [MonologBridge] Re-add option option to ignore empty context and extra data
  [Lock] remove useless code
  [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file
  Provide debug_backtrace with proper args
  [DI] fix infinite loop involving self-references in decorated services
  forward false label option to nested types
  [DI] fix dumping lazy services
  forward the invalid_message option in date types
2018-09-21 14:51:02 +02:00
Nicolas Grekas
76cf0ca661 Merge branch '3.4' into 4.1
* 3.4:
  Fix CS
  Allow reuse of Session between requests
  [MonologBridge] Re-add option option to ignore empty context and extra data
  [Lock] remove useless code
  [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file
  Provide debug_backtrace with proper args
  [DI] fix infinite loop involving self-references in decorated services
  forward false label option to nested types
  forward the invalid_message option in date types
2018-09-21 14:49:42 +02:00
Nicolas Grekas
0218507b06 Merge branch '2.8' into 3.4
* 2.8:
  Fix CS
  Allow reuse of Session between requests
  Provide debug_backtrace with proper args
  forward false label option to nested types
  forward the invalid_message option in date types
2018-09-21 14:47:54 +02:00
Nicolas Grekas
76c2de0317 Fix CS 2018-09-21 14:46:38 +02:00
Rhodri Pugh
cbc2be8ba8 [Serializer] deprecated normalizers and encoders who dont implement the base interfaces 2018-09-21 14:14:25 +02:00
Kévin Dunglas
57fe0178c4 [Serializer] Allow to access extra infos in name converters 2018-09-04 15:36:54 +02:00
Dany Maillard
8f8230ac3a Add support for ignoring comments while XML encoding 2018-08-28 00:11:30 +02:00