Symfony News

New in Symfony 3.1: FrameworkBundle Improvements

The FrameworkBundle is the piece that glues all the different Symfony components to create a robust and flexible framework. In Symfony 3.1 we introduced some minor but useful improvements to it.

Deprecated built-in form types as services

Contributed by
Jules Pietri
in #18356.

If you execute debug:container command to debug the services defined in the container of your application, you'll find 29 services related to the built-in form types:

1
2
3
4
5
6
7
$ ./bin/console debug:container
...
form.type.birthday   Symfony\Component\Form\Extension\Core\Type\BirthdayType
form.type.button     Symfony\Component\Form\Extension\Core\Type\ButtonType
...
form.type.timezone   Symfony\Component\Form\Extension\Core\Type\TimezoneType
form.type.url        Symfony\Component\Form\Extension\Core\Type\UrlType

In Symfony 3.1 we've deprecated all these services and they'll be removed in Symfony 4.0. Instead of using these services, you must use the fully qualified class name of the form types (e.g. UrlType::class).

Improved debug:container and debug:config commands

Contributed by
Stepan Anchugov, Oleg Voronkovich in #17484 and #17726.

In Symfony 3.1, these commands have been improved to help you when no results are found. First, debug:config command now displays a Did you mean? list of suggestions when the bundle name or extension alias is not found.

The debug:container command already displayed the Did you mean? list of suggestions, but now, when there is only one suggestion, it displays it preselected.

Added json() shortcut to the base controller

Contributed by
Fred Cox
in #17642.

The base controller defines shortcut methods for common tasks, such as render() to render templates and get() to get container services. In Symfony 3.1 we added a new shortcut called json() to turn contents into JSON responses:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class ApiController extends Controller
{
    public function indexAction()
    {
        // ...

        return $this->json($data);
    }
}

If the serializer service is available, data is serialized with it using the default encoding options. If not, the regular json_encode() call is applied to data.

This shortcut defines three more optional arguments, where the $context is the information passed to the serialize() method (when using the serializer):

1
return $this->json($data, $status = 200, $headers = array(), $context = array());

Be trained by Symfony experts - 2016-04-22 Clichy - 2016-04-26 London - 2016-04-26 London


About us

What a Symfony developer should know about the framework: News, Jobs, Tweets, Events, Videos,...

Resources

Find us on Twitter

Find us on Facebook