Blame | Last modification | View Log | Download
Upgrading From 2.x To 3.0=========================* Enabling the `fos_rest.routing_loader` option is not supported anymore. Settingit to another value than `false` leads to an exception:```yamlfos_rest:routing_loader: false```You need to configure your routes explicitly, e.g. using the Symfony Core annotations or the FOSRestBundleshortcuts like `FOS\RestBundle\Controller\Annotations\Get`. You can use`bin/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: restresource: Acme\Controller\TestController```After:```Acme\Controller\TestController:type: annotationresource: Acme\Controller\TestController```When using the Symfony Core route loading, route names might change as the FOSRestBundle used a different namingconvention. Mind the `.{_format}` suffix if you used the `fos_rest.routing_loader.include_format` option.In case you have OpenAPI/Swagger annotations, you can also use [OpenAPI-Symfony-Routing](https://github.com/Tobion/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](https://github.com/handcraftedinthealps/RestRoutingBundle) which extracted the auto-generation of routesin a BC way.* Support for serializing exceptions has been removed. Setting the`fos_rest.exception.serialize_exceptions` option to anything else than `false` leads to an exception.* Support for returning anything other than `string` or `null` from `resolve()` when implementingthe `VersionResolverInterface` has been removed.* `Context::setVersion()` does not accept integers anymore.* The `isFormatTemplating()`, `renderTemplate()`, and `prepareTemplateParameters()` methods of the`ViewHandler` class and the `ViewHandlerInterface` have been removed.* The constructor of the `ViewHandler` class has been changed to `private`. Use the static `create()`factory method instead.* The `setTemplateVar()`, `setPopulateDefaultVars()`, `getTemplateVar()`, and `isPopulateDefaultVars()`methods of the `Controller\Annotations\View` class have been removed.* The `setEngine()`, `setTemplate()`, `setTemplateData()`, `setTemplateVar()`, `getEngine()`,`getTemplate()`, `getTemplateData()`, and `getTemplateVar()` methods of the `View\View` classhave 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 the `Context` class. Use the`enableMaxDepth()` and `disableMaxDepth()` methods instead.* The `getMaxDepth()` method has been removed from the `Context` class. Use the`isMaxDepthEnabled()` 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`