Skip to content

Commit 9d8d5a8

Browse files
committed
Merge branch '2.x'
* 2.x: deprecate non string versions mark form related classes as internal mark remaining DI related classes as internal mark the routing related classes as internal
2 parents 67823f0 + 8afee2a commit 9d8d5a8

19 files changed

+62
-15
lines changed

DependencyInjection/Compiler/HandlerRegistryDecorationPass.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
* have been resolved.
2727
*
2828
* @author Christian Flothmann <[email protected]>
29+
*
30+
* @internal since 2.8
2931
*/
3032
class HandlerRegistryDecorationPass implements CompilerPassInterface
3133
{

DependencyInjection/FOSRestExtension.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2525
use Symfony\Component\Validator\Constraint;
2626

27+
/**
28+
* @internal since 2.8
29+
*/
2730
class FOSRestExtension extends Extension
2831
{
2932
/**

EventListener/VersionListener.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace FOS\RestBundle\EventListener;
1313

1414
use FOS\RestBundle\FOSRestBundle;
15+
use FOS\RestBundle\Version\ChainVersionResolver;
1516
use FOS\RestBundle\Version\VersionResolverInterface;
1617
use Symfony\Component\HttpKernel\Event\RequestEvent;
1718

@@ -41,12 +42,17 @@ public function onKernelRequest($event)
4142
}
4243

4344
$version = $this->versionResolver->resolve($request);
44-
if (false === $version && null !== $this->defaultVersion) {
45+
46+
if (!$this->versionResolver instanceof ChainVersionResolver && null !== $version && !is_string($version)) {
47+
@trigger_error(sprintf('Not returning a string or null from %s::resolve() when implementing the %s is deprecated since FOSRestBundle 2.8.', get_class($this->versionResolver), VersionResolverInterface::class), E_USER_DEPRECATED);
48+
}
49+
50+
if ((false === $version || null === $version) && null !== $this->defaultVersion) {
4551
$version = $this->defaultVersion;
4652
}
4753

4854
// Return if nothing to do
49-
if (false === $version) {
55+
if (false === $version || null === $version) {
5056
return;
5157
}
5258

Form/Extension/DisableCSRFExtension.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
* Class DisableCSRFExtension.
2222
*
2323
* @author Grégoire Pineau
24+
*
25+
* @internal since 2.8
2426
*/
2527
class DisableCSRFExtension extends AbstractTypeExtension
2628
{

Form/Transformer/EntityToIdObjectTransformer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* Class EntityToIdObjectTransformer.
2020
*
2121
* @author Marc Juchli <[email protected]>
22+
*
23+
* @internal since 2.8
2224
*/
2325
class EntityToIdObjectTransformer implements DataTransformerInterface
2426
{

Routing/Loader/DirectoryRouteLoader.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
* Parse annotated controller classes from all files of a directory.
2121
*
2222
* @author Christian Flothmann <[email protected]>
23+
*
24+
* @internal since 2.8
2325
*/
2426
class DirectoryRouteLoader extends Loader
2527
{

Routing/Loader/Reader/RestActionReader.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
* REST controller actions reader.
3030
*
3131
* @author Konstantin Kudryashov <[email protected]>
32+
*
33+
* @internal since 2.8
3234
*/
3335
class RestActionReader
3436
{

Routing/Loader/Reader/RestControllerReader.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
* REST controller reader.
2222
*
2323
* @author Konstantin Kudryashov <[email protected]>
24+
*
25+
* @internal since 2.8
2426
*/
2527
class RestControllerReader
2628
{

Routing/Loader/RestRouteLoader.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
*
2222
* @author Konstantin Kudryashov <[email protected]>
2323
* @author Bulat Shakirzyanov <[email protected]>
24+
*
25+
* @internal since 2.8
2426
*/
2527
class RestRouteLoader extends Loader
2628
{

Routing/Loader/RestRouteProcessor.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
*
2121
* @author Donald Tyler <[email protected]>
2222
* @author Konstantin Kudryashov <[email protected]>
23+
*
24+
* @internal since 2.8
2325
*/
2426
class RestRouteProcessor
2527
{

Routing/Loader/RestXmlCollectionLoader.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
* RestXmlCollectionLoader XML file collections loader.
2222
*
2323
* @author Donald Tyler <[email protected]>
24+
*
25+
* @internal since 2.8
2426
*/
2527
class RestXmlCollectionLoader extends XmlFileLoader
2628
{

Routing/Loader/RestYamlCollectionLoader.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121

2222
/**
2323
* RestYamlCollectionLoader YAML file collections loader.
24+
*
25+
* @internal since 2.8
2426
*/
2527
class RestYamlCollectionLoader extends YamlFileLoader
2628
{

Routing/RestRouteCollection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
* Restful route collection.
1818
*
1919
* @author Konstantin Kudryashov <[email protected]>
20+
*
21+
* @internal since 2.8
2022
*/
2123
class RestRouteCollection extends RouteCollection
2224
{

UPGRADING-2.8.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,26 @@
11
Upgrading From 2.7 To 2.8
22
=========================
33

4+
* Deprecated returning anything other than `string` or `null` from `resolve()` when implementing
5+
the `VersionResolverInterface`.
6+
47
* Passing version number as integers to `Context::setVersion()` is deprecated. Strings will be
58
enforced as of 3.0.
69

710
* The following classes are marked as `internal`:
811

12+
* `FOS\RestBundle\DependencyInjection\Compiler\HandlerRegistryDecorationPass`
13+
* `FOS\RestBundle\DependencyInjection\FOSRestExtension`
14+
* `FOS\RestBundle\Form\Extension\DisableCSRFExtension`
15+
* `FOS\RestBundle\Form\Transformer\EntityToIdObjectTransformer`
16+
* `FOS\RestBundle\Routing\Loader\DirectoryRouteLoader`
17+
* `FOS\RestBundle\Routing\Loader\Reader\RestActionReader`
18+
* `FOS\RestBundle\Routing\Loader\Reader\RestControllerReader`
19+
* `FOS\RestBundle\Routing\Loader\RestRouteLoader`
20+
* `FOS\RestBundle\Routing\Loader\RestRouteProcessor`
21+
* `FOS\RestBundle\Routing\Loader\RestXmlCollectionLoader`
22+
* `FOS\RestBundle\Routing\Loader\RestYamlCollectionLoader`
23+
* `FOS\RestBundle\Routing\RestRouteCollection`
924
* `FOS\RestBundle\Serializer\Normalizer\ExceptionHandler`
1025
* `FOS\RestBundle\Serializer\Normalizer\ExceptionNormalizer`
1126
* `FOS\RestBundle\Serializer\Normalizer\FormErrorHandler`

Version/ChainVersionResolver.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,17 @@ public function resolve(Request $request)
3737
{
3838
foreach ($this->resolvers as $resolver) {
3939
$version = $resolver->resolve($request);
40-
if (false !== $version) {
40+
41+
if (null !== $version && !is_string($version)) {
42+
@trigger_error(sprintf('Not returning a string or null from %s::resolve() when implementing the %s is deprecated since FOSRestBundle 2.8.', get_class($resolver), VersionResolverInterface::class), E_USER_DEPRECATED);
43+
}
44+
45+
if (null !== $version && false !== $version) {
4146
return $version;
4247
}
4348
}
4449

45-
return false;
50+
return null;
4651
}
4752

4853
public function addResolver(VersionResolverInterface $resolver)

Version/Resolver/HeaderVersionResolver.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,9 @@ public function __construct($headerName)
3535
public function resolve(Request $request)
3636
{
3737
if (!$request->headers->has($this->headerName)) {
38-
return false;
38+
return null;
3939
}
4040

41-
$header = $request->headers->get($this->headerName);
42-
43-
return is_scalar($header) ? $header : strval($header);
41+
return (string) $request->headers->get($this->headerName);
4442
}
4543
}

Version/Resolver/MediaTypeVersionResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public function __construct($regex)
3535
public function resolve(Request $request)
3636
{
3737
if (!$request->attributes->has('media_type') || false === preg_match($this->regex, $request->attributes->get('media_type'), $matches)) {
38-
return false;
38+
return null;
3939
}
4040

41-
return isset($matches['version']) ? $matches['version'] : false;
41+
return isset($matches['version']) ? $matches['version'] : null;
4242
}
4343
}

Version/Resolver/QueryParameterVersionResolver.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,9 @@ public function __construct($parameterName)
3535
public function resolve(Request $request)
3636
{
3737
if (!$request->query->has($this->parameterName)) {
38-
return false;
38+
return null;
3939
}
4040

41-
$parameter = $request->query->get($this->parameterName);
42-
43-
return is_scalar($parameter) ? $parameter : strval($parameter);
41+
return (string) $request->query->get($this->parameterName);
4442
}
4543
}

Version/VersionResolverInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
interface VersionResolverInterface
2020
{
2121
/**
22-
* @return scalar|false Current version or false if not resolved
22+
* @return string|null Current version or false if not resolved
2323
*/
2424
public function resolve(Request $request);
2525
}

0 commit comments

Comments
 (0)