-
Enabling the
fos_rest.routing_loader
option is not supported anymore. Setting it to another value thanfalse
leads to an exception:fos_rest: routing_loader: false
You need to configure your routes explicitly, e.g. using the Symfony Core annotations or the FOSRestBundle shortcuts like
FOS\RestBundle\Controller\Annotations\Get
. You can usebin/console debug:router --show-controllers
to help with the migration and compare routes before and after it. Change the routing loading:Before:
Acme\Controller\TestController: type: rest resource: Acme\Controller\TestController
After:
Acme\Controller\TestController: type: annotation resource: Acme\Controller\TestController
When using the Symfony Core route loading, route names might change as the FOSRestBundle used a different naming convention. Mind the
.{_format}
suffix if you used thefos_rest.routing_loader.include_format
option.In case you have OpenAPI/Swagger annotations, you can also use OpenAPI-Symfony-Routing which removes the need to have routing information duplicated. It also allows to add the
.{_format}
suffix automatically as before.If migration to explicit routes is not possible or feasible, consider using RestRoutingBundle which extracted the auto-generation of routes in a BC way.
-
Support for serializing exceptions has been removed. Setting the
fos_rest.exception.serialize_exceptions
option to anything else thanfalse
leads to an exception. -
Support for returning anything other than
string
ornull
fromresolve()
when implementing theVersionResolverInterface
has been removed. -
Context::setVersion()
does not accept integers anymore. -
The
isFormatTemplating()
,renderTemplate()
, andprepareTemplateParameters()
methods of theViewHandler
class and theViewHandlerInterface
have been removed. -
The constructor of the
ViewHandler
class has been changed toprivate
. Use the staticcreate()
factory method instead. -
The
setTemplateVar()
,setPopulateDefaultVars()
,getTemplateVar()
, andisPopulateDefaultVars()
methods of theController\Annotations\View
class have been removed. -
The
setEngine()
,setTemplate()
,setTemplateData()
,setTemplateVar()
,getEngine()
,getTemplate()
,getTemplateData()
, andgetTemplateVar()
methods of theView\View
class have been removed. -
The default value of the
fos_rest.body_listener
option has been changed from enabled to disabled. -
The
setMaxDepth()
method has been removed from theContext
class. Use theenableMaxDepth()
anddisableMaxDepth()
methods instead. -
The
getMaxDepth()
method has been removed from theContext
class. Use theisMaxDepthEnabled()
method instead. -
The following options have been removed:
fos_rest.access_denied_listener
fos_rest.exception.exception_controller
fos_rest.exception.exception_listener
fos_rest.exception.service
fos_rest.service.inflector
fos_rest.service.router
fos_rest.service.templating
fos_rest.view.default_engine
fos_rest.view.force_redirects
fos_rest.view.templating_formats
-
The following classes and interfaces have been removed:
FOS\RestBundle\Controller\Annotations\NamePrefix
FOS\RestBundle\Controller\Annotations\NoRoute
FOS\RestBundle\Controller\Annotations\Prefix
FOS\RestBundle\Controller\Annotations\RouteResource
FOS\RestBundle\Controller\Annotations\Version
FOS\RestBundle\Controller\ExceptionController
FOS\RestBundle\Controller\FOSRestController
FOS\RestBundle\Controller\TemplatingExceptionController
FOS\RestBundle\Controller\TwigExceptionController
FOS\RestBundle\EventListener\AccessDeniedListener
FOS\RestBundle\EventListener\ExceptionListener
FOS\RestBundle\Inflector\DoctrineInflector
FOS\RestBundle\Inflector\InflectorInterface
FOS\RestBundle\Routing\Loader\DirectoryRouteLoader
FOS\RestBundle\Routing\Loader\Reader\RestActionReader
FOS\RestBundle\Routing\Loader\Reader\RestControllerReader
FOS\RestBundle\Routing\Loader\RestRouteLoader
FOS\RestBundle\Routing\Loader\RestRouteProcessor
FOS\RestBundle\Routing\Loader\RestXmlCollectionLoader
FOS\RestBundle\Routing\Loader\RestYamlCollectionLoader
FOS\RestBundle\Routing\ClassResourceInterface
FOS\RestBundle\Routing\RestRouteCollection
FOS\RestBundle\Serializer\Normalizer\ExceptionHandler
FOS\RestBundle\Serializer\Normalizer\ExceptionNormalizer
-
The following services and aliases have been removed:
fos_rest.access_denied_listener
fos_rest.exception_listener
fos_rest.exception.controller
fos_rest.exception.twig_controller
fos_rest.routing.loader.controller
fos_rest.routing.loader.directory
fos_rest.routing.loader.processor
fos_rest.routing.loader.reader.controller
fos_rest.routing.loader.reader.action
fos_rest.routing.loader.xml_collection
fos_rest.routing.loader.yaml_collection
fos_rest.serializer.exception_normalizer.jms
fos_rest.serializer.exception_normalizer.symfony
fos_rest.templating
-
The following classes are marked as
internal
(backwards compatibility will no longer be guaranteed):FOS\RestBundle\DependencyInjection\Compiler\HandlerRegistryDecorationPass
FOS\RestBundle\DependencyInjection\FOSRestExtension
FOS\RestBundle\Form\Extension\DisableCSRFExtension
FOS\RestBundle\Form\Transformer\EntityToIdObjectTransformer
FOS\RestBundle\Normalizer\CamelKeysNormalizer
FOS\RestBundle\Normalizer\CamelKeysNormalizerWithLeadingUnderscore
FOS\RestBundle\Serializer\Normalizer\FormErrorHandler
FOS\RestBundle\Serializer\Normalizer\FormErrorNormalizer
FOS\RestBundle\Util\ExceptionValueMap
-
The following classes are now
final
:FOS\RestBundle\Decoder\ContainerDecoderProvider
FOS\RestBundle\Decoder\JsonDecoder
FOS\RestBundle\Decoder\JsonToFormDecoder
FOS\RestBundle\Decoder\XmlDecoder
FOS\RestBundle\Form\Transformer\EntityToIdObjectTransformer
FOS\RestBundle\Negotiation\FormatNegotiator
FOS\RestBundle\Request\ParamFetcher
FOS\RestBundle\Request\ParamReader
FOS\RestBundle\Request\RequestBodyParamConverter
FOS\RestBundle\Response\AllowMethodsLoader\AllowedMethodsRouterLoader
FOS\RestBundle\Serializer\JMSSerializerAdapter
FOS\RestBundle\Serializer\SymfonySerializerAdapter
FOS\RestBundle\Version\ChainVersionResolver
FOS\RestBundle\Version\Resolver\HeaderVersionResolver
FOS\RestBundle\Version\Resolver\MediaTypeVersionResolver
FOS\RestBundle\Version\Resolver\QueryParameterVersionResolver
FOS\RestBundle\View\JsonpHandler
FOS\RestBundle\View\View
FOS\RestBundle\View\ViewHandler