Skip to content

Commit

Permalink
minor #31866 [Routing] revert deprecation of Serializable in routing …
Browse files Browse the repository at this point in the history
…(Tobion)

This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] revert deprecation of Serializable in routing

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |
| License       | MIT
| Doc PR        |

we still need to implement Serializable as long as we support PHP < 7.4. otherwise serialized data in php 7.2 would not work anymore when people upgrade to php 7.4. see discussion in #31792 (comment)
partly reverts #30286

Commits
-------

d32a295 [Routing] revert deprecation of Serializable in routing
  • Loading branch information
Tobion committed Jun 5, 2019
2 parents d90dd8d + d32a295 commit 3242392
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 10 deletions.
5 changes: 3 additions & 2 deletions UPGRADE-4.3.md
Expand Up @@ -121,8 +121,9 @@ Routing

* The `generator_base_class`, `generator_cache_class`, `matcher_base_class`, and `matcher_cache_class` router
options have been deprecated.
* Implementing `Serializable` for `Route` and `CompiledRoute` is deprecated; if you serialize them, please
ensure your unserialization logic can recover from a failure related to an updated serialization format
* `Serializable` implementing methods for `Route` and `CompiledRoute` are marked as `@internal` and `@final`.
Instead of overwriting them, use `__serialize` and `__unserialize` as extension points which are forward compatible
with the new serialization methods in PHP 7.4.

Security
--------
Expand Down
5 changes: 3 additions & 2 deletions UPGRADE-5.0.md
Expand Up @@ -282,8 +282,9 @@ Routing

* The `generator_base_class`, `generator_cache_class`, `matcher_base_class`, and `matcher_cache_class` router
options have been removed.
* `Route` and `CompiledRoute` don't implement `Serializable` anymore; if you serialize them, please
ensure your unserialization logic can recover from a failure related to an updated serialization format
* `Serializable` implementing methods for `Route` and `CompiledRoute` are final.
Instead of overwriting them, use `__serialize` and `__unserialize` as extension points which are forward compatible
with the new serialization methods in PHP 7.4.

Security
--------
Expand Down
5 changes: 3 additions & 2 deletions src/Symfony/Component/Routing/CHANGELOG.md
Expand Up @@ -8,8 +8,9 @@ CHANGELOG
* added `CompiledUrlGenerator` and `CompiledUrlGeneratorDumper`
* deprecated `PhpGeneratorDumper` and `PhpMatcherDumper`
* deprecated `generator_base_class`, `generator_cache_class`, `matcher_base_class` and `matcher_cache_class` router options
* deprecated implementing `Serializable` for `Route` and `CompiledRoute`; if you serialize them, please
ensure your unserialization logic can recover from a failure related to an updated serialization format
* `Serializable` implementing methods for `Route` and `CompiledRoute` are marked as `@internal` and `@final`.
Instead of overwriting them, use `__serialize` and `__unserialize` as extension points which are forward compatible
with the new serialization methods in PHP 7.4.
* exposed `utf8` Route option, defaults "locale" and "format" in configuration loaders and configurators
* added support for invokable route loader services

Expand Down
6 changes: 4 additions & 2 deletions src/Symfony/Component/Routing/CompiledRoute.php
Expand Up @@ -64,7 +64,8 @@ public function __serialize(): array
}

/**
* @internal since Symfony 4.3, will be removed in Symfony 5 as the class won't implement Serializable anymore
* @internal since Symfony 4.3
* @final since Symfony 4.3
*/
public function serialize()
{
Expand All @@ -84,7 +85,8 @@ public function __unserialize(array $data): void
}

/**
* @internal since Symfony 4.3, will be removed in Symfony 5 as the class won't implement Serializable anymore
* @internal since Symfony 4.3
* @final since Symfony 4.3
*/
public function unserialize($serialized)
{
Expand Down
6 changes: 4 additions & 2 deletions src/Symfony/Component/Routing/Route.php
Expand Up @@ -78,7 +78,8 @@ public function __serialize(): array
}

/**
* @internal since Symfony 4.3, will be removed in Symfony 5 as the class won't implement Serializable anymore
* @internal since Symfony 4.3
* @final since Symfony 4.3
*/
public function serialize()
{
Expand All @@ -104,7 +105,8 @@ public function __unserialize(array $data): void
}

/**
* @internal since Symfony 4.3, will be removed in Symfony 5 as the class won't implement Serializable anymore
* @internal since Symfony 4.3
* @final since Symfony 4.3
*/
public function unserialize($serialized)
{
Expand Down

0 comments on commit 3242392

Please sign in to comment.