Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c6ac96c

Browse files
committedJan 20, 2014
Merge branch '2.4'
Conflicts: components/console/introduction.rst reference/forms/types/file.rst
2 parents 6db5f23 + 5ba2227 commit c6ac96c

39 files changed

+222
-108
lines changed
 

‎book/validation.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,7 @@ Now, change the ``User`` class to implement
10721072
add the
10731073
:method:`Symfony\\Component\\Validator\\GroupSequenceProviderInterface::getGroupSequence`,
10741074
which should return an array of groups to use. Also, add the
1075-
``@Assert\GroupSequenceProvider`` annotation to the class. If you imagine
1075+
``@Assert\GroupSequenceProvider`` annotation to the class (or ``group_sequence_provider: true`` to the YAML). If you imagine
10761076
that a method called ``isPremium`` returns true if the user is a premium member,
10771077
then your code might look like this::
10781078

‎components/console/introduction.rst

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Creating a basic Command
3535
To make a console command that greets you from the command line, create ``GreetCommand.php``
3636
and add the following to it::
3737

38-
namespace Acme\DemoBundle\Command;
38+
namespace Acme\Command;
3939

4040
use Symfony\Component\Console\Command\Command;
4141
use Symfony\Component\Console\Input\InputArgument;
@@ -86,9 +86,9 @@ an ``Application`` and adds commands to it::
8686

8787
#!/usr/bin/env php
8888
<?php
89-
// app/console
89+
// application.php
9090

91-
use Acme\DemoBundle\Command\GreetCommand;
91+
use Acme\Command\GreetCommand;
9292
use Symfony\Component\Console\Application;
9393

9494
$application = new Application();
@@ -99,7 +99,7 @@ Test the new console command by running the following
9999

100100
.. code-block:: bash
101101
102-
$ app/console demo:greet Fabien
102+
$ php application.php demo:greet Fabien
103103
104104
This will print the following to the command line:
105105

@@ -111,7 +111,7 @@ You can also use the ``--yell`` option to make everything uppercase:
111111

112112
.. code-block:: bash
113113
114-
$ app/console demo:greet Fabien --yell
114+
$ php application.php demo:greet Fabien --yell
115115
116116
This prints::
117117

@@ -267,8 +267,8 @@ The command can now be used in either of the following ways:
267267

268268
.. code-block:: bash
269269
270-
$ app/console demo:greet Fabien
271-
$ app/console demo:greet Fabien Potencier
270+
$ php application.php demo:greet Fabien
271+
$ php application.php demo:greet Fabien Potencier
272272
273273
It is also possible to let an argument take a list of values (imagine you want
274274
to greet all your friends). For this it must be specified at the end of the
@@ -286,7 +286,7 @@ To use this, just specify as many names as you want:
286286

287287
.. code-block:: bash
288288
289-
$ app/console demo:greet Fabien Ryan Bernhard
289+
$ php application.php demo:greet Fabien Ryan Bernhard
290290
291291
You can access the ``names`` argument as an array::
292292

@@ -356,8 +356,8 @@ flag:
356356

357357
.. code-block:: bash
358358
359-
$ app/console demo:greet Fabien
360-
$ app/console demo:greet Fabien --iterations=5
359+
$ php application.php demo:greet Fabien
360+
$ php application.php demo:greet Fabien --iterations=5
361361
362362
The first example will only print once, since ``iterations`` is empty and
363363
defaults to ``1`` (the last argument of ``addOption``). The second example
@@ -368,8 +368,8 @@ will work:
368368

369369
.. code-block:: bash
370370
371-
$ app/console demo:greet Fabien --iterations=5 --yell
372-
$ app/console demo:greet Fabien --yell --iterations=5
371+
$ php application.php demo:greet Fabien --iterations=5 --yell
372+
$ php application.php demo:greet Fabien --yell --iterations=5
373373
374374
There are 4 option variants you can use:
375375

@@ -415,9 +415,9 @@ useful one is the :class:`Symfony\\Component\\Console\\Tester\\CommandTester`
415415
class. It uses special input and output classes to ease testing without a real
416416
console::
417417

418+
use Acme\Command\GreetCommand;
418419
use Symfony\Component\Console\Application;
419420
use Symfony\Component\Console\Tester\CommandTester;
420-
use Acme\DemoBundle\Command\GreetCommand;
421421

422422
class ListCommandTest extends \PHPUnit_Framework_TestCase
423423
{
@@ -444,9 +444,9 @@ You can test sending arguments and options to the command by passing them
444444
as an array to the :method:`Symfony\\Component\\Console\\Tester\\CommandTester::execute`
445445
method::
446446

447+
use Acme\Command\GreetCommand;
447448
use Symfony\Component\Console\Application;
448449
use Symfony\Component\Console\Tester\CommandTester;
449-
use Acme\DemoBundle\Command\GreetCommand;
450450

451451
class ListCommandTest extends \PHPUnit_Framework_TestCase
452452
{
@@ -527,6 +527,7 @@ Learn More!
527527
* :doc:`/components/console/usage`
528528
* :doc:`/components/console/single_command_tool`
529529
* :doc:`/components/console/changing_default_command`
530+
* :doc:`/components/console/events`
530531

531532
.. _Packagist: https://packagist.org/packages/symfony/console
532533
.. _ANSICON: https://github.com/adoxa/ansicon/downloads

‎components/console/single_command_tool.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ You can also simplify how you execute the application::
6666
#!/usr/bin/env php
6767
<?php
6868
// command.php
69+
6970
use Acme\Tool\MyApplication;
7071

7172
$application = new MyApplication();

‎components/console/usage.rst

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ built-in options as well as a couple of built-in commands for the Console compon
99

1010
.. note::
1111

12-
These examples assume you have added a file ``app/console`` to run at
12+
These examples assume you have added a file ``application.php`` to run at
1313
the cli::
1414

1515
#!/usr/bin/env php
16-
# app/console
1716
<?php
17+
// application.php
1818

1919
use Symfony\Component\Console\Application;
2020

@@ -30,26 +30,26 @@ and the registered commands:
3030

3131
.. code-block:: bash
3232
33-
$ php app/console list
33+
$ php application.php list
3434
3535
You can get the same output by not running any command as well
3636

3737
.. code-block:: bash
3838
39-
$ php app/console
39+
$ php application.php
4040
4141
The help command lists the help information for the specified command. For
4242
example, to get the help for the ``list`` command:
4343

4444
.. code-block:: bash
4545
46-
$ php app/console help list
46+
$ php application.php help list
4747
4848
Running ``help`` without specifying a command will list the global options:
4949

5050
.. code-block:: bash
5151
52-
$ php app/console help
52+
$ php application.php help
5353
5454
Global Options
5555
~~~~~~~~~~~~~~
@@ -59,33 +59,33 @@ get help for the list command:
5959

6060
.. code-block:: bash
6161
62-
$ php app/console list --help
63-
$ php app/console list -h
62+
$ php application.php list --help
63+
$ php application.php list -h
6464
6565
You can suppress output with:
6666

6767
.. code-block:: bash
6868
69-
$ php app/console list --quiet
70-
$ php app/console list -q
69+
$ php application.php list --quiet
70+
$ php application.php list -q
7171
7272
You can get more verbose messages (if this is supported for a command)
7373
with:
7474

7575
.. code-block:: bash
7676
77-
$ php app/console list --verbose
78-
$ php app/console list -v
77+
$ php application.php list --verbose
78+
$ php application.php list -v
7979
8080
The verbose flag can optionally take a value between 1 (default) and 3 to
8181
output even more verbose messages:
8282

8383
.. code-block:: bash
8484
85-
$ php app/console list --verbose=2
86-
$ php app/console list -vv
87-
$ php app/console list --verbose=3
88-
$ php app/console list -vvv
85+
$ php application.php list --verbose=2
86+
$ php application.php list -vv
87+
$ php application.php list --verbose=3
88+
$ php application.php list -vvv
8989
9090
If you set the optional arguments to give your application a name and version::
9191

@@ -95,8 +95,8 @@ then you can use:
9595

9696
.. code-block:: bash
9797
98-
$ php app/console list --version
99-
$ php app/console list -V
98+
$ php application.php list --version
99+
$ php application.php list -V
100100
101101
to get this information output:
102102

@@ -114,20 +114,20 @@ You can force turning on ANSI output coloring with:
114114

115115
.. code-block:: bash
116116
117-
$ php app/console list --ansi
117+
$ php application.php list --ansi
118118
119119
or turn it off with:
120120

121121
.. code-block:: bash
122122
123-
$ php app/console list --no-ansi
123+
$ php application.php list --no-ansi
124124
125125
You can suppress any interactive questions from the command you are running with:
126126

127127
.. code-block:: bash
128128
129-
$ php app/console list --no-interaction
130-
$ php app/console list -n
129+
$ php application.php list --no-interaction
130+
$ php application.php list -n
131131
132132
Shortcut Syntax
133133
~~~~~~~~~~~~~~~
@@ -138,7 +138,7 @@ commands, then you can run ``help`` like this:
138138

139139
.. code-block:: bash
140140
141-
$ php app/console h
141+
$ php application.php h
142142
143143
If you have commands using ``:`` to namespace commands then you just have
144144
to type the shortest unambiguous text for each part. If you have created the
@@ -147,7 +147,7 @@ can run it with:
147147

148148
.. code-block:: bash
149149
150-
$ php app/console d:g Fabien
150+
$ php application.php d:g Fabien
151151
152152
If you enter a short command that's ambiguous (i.e. there are more than one
153153
command that match), then no command will be run and some suggestions of

‎components/expression_language/syntax.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ Working with Objects
2828
When passing objects into an expression, you can use different syntaxes to
2929
access properties and call methods on the object.
3030

31-
Accessing Public Methods
32-
~~~~~~~~~~~~~~~~~~~~~~~~
31+
Accessing Public Properties
32+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
3333

3434
Public properties on objects can be accessed by using the ``.`` syntax, similar
3535
to JavaScript::

‎components/http_foundation/session_configuration.rst

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ PHP or provided by PHP extensions, such as PHP-Sqlite, PHP-Memcached and so on.
2828
All native save handlers are internal to PHP and as such, have no public facing API.
2929
They must be configured by ``php.ini`` directives, usually ``session.save_path`` and
3030
potentially other driver specific directives. Specific details can be found in
31-
docblock of the ``setOptions()`` method of each class.
31+
the docblock of the ``setOptions()`` method of each class. For instance, the one
32+
provided by the Memcached extension can be found on `php.net/memcached.setoption`_
3233

3334
While native save handlers can be activated by directly using
3435
``ini_set('session.save_handler', $name);``, Symfony2 provides a convenient way to
35-
activate these in the same way as custom handlers.
36+
activate these in the same way as it does for custom handlers.
3637

3738
Symfony2 provides drivers for the following native save handler as an example:
3839

@@ -61,7 +62,7 @@ Example usage::
6162
Custom Save Handlers
6263
--------------------
6364

64-
Custom handlers are those which completely replace PHP's built in session save
65+
Custom handlers are those which completely replace PHP's built-in session save
6566
handlers by providing six callback functions which PHP calls internally at
6667
various points in the session workflow.
6768

@@ -234,6 +235,11 @@ PHP 5.4 functionality if it is available.
234235
Save Handler Proxy
235236
~~~~~~~~~~~~~~~~~~
236237

238+
A Save Handler Proxy is basically a wrapper around a Save Handler that was
239+
introduced to support seamlessly the migration from PHP 5.3 to PHP 5.4+. It
240+
further creates an extension point from where custom logic can be added that
241+
works independently of which handler is being wrapped inside.
242+
237243
There are two kinds of save handler class proxies which inherit from
238244
:class:`Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractProxy`:
239245
they are :class:`Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeProxy`
@@ -263,3 +269,4 @@ without knowledge of the specific save handler.
263269

264270
.. _`php.net/session.customhandler`: http://php.net/session.customhandler
265271
.. _`php.net/session.configuration`: http://php.net/session.configuration
272+
.. _`php.net/memcached.setoption`: http://php.net/memcached.setoption

‎components/translation/introduction.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ The Translation component uses Loader classes to load catalogs. You can load
6262
multiple resources for the same locale, which will then be combined into one
6363
catalog.
6464

65+
.. versionadded:: 2.4
66+
The ``JsonFileLoader`` was introduced in Symfony 2.4.
67+
6568
The component comes with some default Loaders and you can create your own
6669
Loader too. The default loaders are:
6770

@@ -85,6 +88,8 @@ Loader too. The default loaders are:
8588
catalogs form QT XML files.
8689
* :class:`Symfony\\Component\\Translation\\Loader\\XliffFileLoader` - to load
8790
catalogs from Xliff files.
91+
* :class:`Symfony\\Component\\Translation\\Loader\\JsonFileLoader` - to load
92+
catalogs from JSON files.
8893
* :class:`Symfony\\Component\\Translation\\Loader\\YamlFileLoader` - to load
8994
catalogs from Yaml files (requires the :doc:`Yaml component</components/yaml/introduction>`).
9095

‎contributing/code/patches.rst

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Get the Symfony2 source code:
7272
* Fork the `Symfony2 repository`_ (click on the "Fork" button);
7373

7474
* After the "forking action" has completed, clone your fork locally
75-
(this will create a `symfony` directory):
75+
(this will create a ``symfony`` directory):
7676

7777
.. code-block:: bash
7878
@@ -105,16 +105,16 @@ Choose the right Branch
105105
~~~~~~~~~~~~~~~~~~~~~~~
106106

107107
Before working on a patch, you must determine on which branch you need to
108-
work. The branch should be based on the `master` branch if you want to add a
108+
work. The branch should be based on the ``master`` branch if you want to add a
109109
new feature. But if you want to fix a bug, use the oldest but still maintained
110-
version of Symfony where the bug happens (like `2.2`).
110+
version of Symfony where the bug happens (like ``2.3``).
111111

112112
.. note::
113113

114114
All bug fixes merged into maintenance branches are also merged into more
115115
recent branches on a regular basis. For instance, if you submit a patch
116-
for the `2.2` branch, the patch will also be applied by the core team on
117-
the `master` branch.
116+
for the ``2.3`` branch, the patch will also be applied by the core team on
117+
the ``master`` branch.
118118

119119
Create a Topic Branch
120120
~~~~~~~~~~~~~~~~~~~~~
@@ -126,26 +126,26 @@ topic branch:
126126
127127
$ git checkout -b BRANCH_NAME master
128128
129-
Or, if you want to provide a bugfix for the 2.2 branch, first track the remote
130-
`2.2` branch locally:
129+
Or, if you want to provide a bugfix for the ``2.3`` branch, first track the remote
130+
``2.3`` branch locally:
131131

132132
.. code-block:: bash
133133
134-
$ git checkout -t origin/2.2
134+
$ git checkout -t origin/2.3
135135
136-
Then create a new branch off the 2.2 branch to work on the bugfix:
136+
Then create a new branch off the ``2.3`` branch to work on the bugfix:
137137

138138
.. code-block:: bash
139139
140-
$ git checkout -b BRANCH_NAME 2.2
140+
$ git checkout -b BRANCH_NAME 2.3
141141
142142
.. tip::
143143

144-
Use a descriptive name for your branch (`ticket_XXX` where `XXX` is the
144+
Use a descriptive name for your branch (``ticket_XXX`` where ``XXX`` is the
145145
ticket number is a good convention for bug fixes).
146146

147147
The above checkout commands automatically switch the code to the newly created
148-
branch (check the branch you are working on with `git branch`).
148+
branch (check the branch you are working on with ``git branch``).
149149

150150
Work on your Patch
151151
~~~~~~~~~~~~~~~~~~
@@ -154,7 +154,7 @@ Work on the code as much as you want and commit as much as you want; but keep
154154
in mind the following:
155155

156156
* Read about the Symfony :doc:`conventions <conventions>` and follow the
157-
coding :doc:`standards <standards>` (use `git diff --check` to check for
157+
coding :doc:`standards <standards>` (use ``git diff --check`` to check for
158158
trailing spaces -- also read the tip below);
159159

160160
* Add unit tests to prove that the bug is fixed or that the new feature
@@ -164,7 +164,7 @@ in mind the following:
164164
provide a compatibility layer to support the old way) -- patches that break
165165
backward compatibility have less chance to be merged;
166166

167-
* Do atomic and logically separate commits (use the power of `git rebase` to
167+
* Do atomic and logically separate commits (use the power of ``git rebase`` to
168168
have a clean and logical history);
169169

170170
* Squash irrelevant commits that are just about fixing coding standards or
@@ -179,7 +179,7 @@ in mind the following:
179179

180180
When submitting pull requests, `fabbot`_ checks your code
181181
for common typos and verifies that you are using the PHP coding standards
182-
as defined in PSR-1 and PSR-2.
182+
as defined in `PSR-1`_ and `PSR-2`_.
183183

184184
A status is posted below the pull request description with a summary
185185
of any problems it detects or any Travis CI build failures.
@@ -199,11 +199,11 @@ Prepare your Patch for Submission
199199
When your patch is not about a bug fix (when you add a new feature or change
200200
an existing one for instance), it must also include the following:
201201

202-
* An explanation of the changes in the relevant CHANGELOG file(s) (the ``[BC
203-
BREAK]`` or the ``[DEPRECATION]`` prefix must be used when relevant);
202+
* An explanation of the changes in the relevant ``CHANGELOG`` file(s) (the
203+
``[BC BREAK]`` or the ``[DEPRECATION]`` prefix must be used when relevant);
204204

205205
* An explanation on how to upgrade an existing application in the relevant
206-
UPGRADE file(s) if the changes break backward compatibility or if you
206+
``UPGRADE`` file(s) if the changes break backward compatibility or if you
207207
deprecate something that will ultimately break backward compatibility.
208208

209209
Step 3: Submit your Patch
@@ -228,7 +228,8 @@ while to finish your changes):
228228
229229
.. tip::
230230

231-
Replace `master` with `2.2` if you are working on a bugfix
231+
Replace ``master`` with the branch you selected previously (e.g. ``2.3``)
232+
if you are working on a bugfix
232233

233234
When doing the ``rebase`` command, you might have to fix merge conflicts.
234235
``git status`` will show you the *unmerged* files. Resolve all the conflicts,
@@ -243,7 +244,7 @@ Check that all tests still pass and push your branch remotely:
243244

244245
.. code-block:: bash
245246
246-
$ git push origin BRANCH_NAME
247+
$ git push -f origin BRANCH_NAME
247248
248249
Make a Pull Request
249250
~~~~~~~~~~~~~~~~~~~
@@ -252,8 +253,8 @@ You can now make a pull request on the ``symfony/symfony`` Github repository.
252253

253254
.. tip::
254255

255-
Take care to point your pull request towards ``symfony:2.2`` if you want
256-
the core team to pull a bugfix based on the 2.2 branch.
256+
Take care to point your pull request towards ``symfony:2.3`` if you want
257+
the core team to pull a bugfix based on the ``2.3`` branch.
257258

258259
To ease the core team work, always include the modified components in your
259260
pull request message, like in:
@@ -316,10 +317,10 @@ Some answers to the questions trigger some more requirements:
316317
documentation and reference it under the "Doc PR" section;
317318

318319
* If you answer yes to "BC breaks?", the patch must contain updates to the
319-
relevant CHANGELOG and UPGRADE files;
320+
relevant ``CHANGELOG`` and ``UPGRADE`` files;
320321

321322
* If you answer yes to "Deprecations?", the patch must contain updates to the
322-
relevant CHANGELOG and UPGRADE files;
323+
relevant ``CHANGELOG`` and ``UPGRADE`` files;
323324

324325
* If you answer no to "Tests pass", you must add an item to a todo-list with
325326
the actions that must be done to fix the tests;
@@ -381,7 +382,7 @@ convert many commits to one commit. To do this, use the rebase command:
381382

382383
.. code-block:: bash
383384
384-
$ git rebase -i HEAD~3
385+
$ git rebase -i upstream/master
385386
$ git push -f origin BRANCH_NAME
386387
387388
The number 3 here must equal the amount of commits in your branch. After you
@@ -393,11 +394,11 @@ type this command, an editor will popup showing a list of commits:
393394
pick 7fc64b4 second commit
394395
pick 7d33018 third commit
395396
396-
To squash all commits into the first one, remove the word "pick" before the
397-
second and the last commits, and replace it by the word "squash" or just "s".
398-
When you save, Git will start rebasing, and if successful, will ask you to
399-
edit the commit message, which by default is a listing of the commit messages
400-
of all the commits. When you finish, execute the push command.
397+
To squash all commits into the first one, remove the word ``pick`` before the
398+
second and the last commits, and replace it by the word ``squash`` or just
399+
``s``. When you save, Git will start rebasing, and if successful, will ask
400+
you to edit the commit message, which by default is a listing of the commit
401+
messages of all the commits. When you are finished, execute the push command.
401402

402403
.. _ProGit: http://git-scm.com/book
403404
.. _GitHub: https://github.com/signup/free
@@ -409,3 +410,5 @@ of all the commits. When you finish, execute the push command.
409410
.. _`travis-ci.org Getting Started Guide`: http://about.travis-ci.org/docs/user/getting-started/
410411
.. _`documentation repository`: https://github.com/symfony/symfony-docs
411412
.. _`fabbot`: http://fabbot.io
413+
.. _`PSR-1`: http://www.php-fig.org/psr/psr-1/
414+
.. _`PSR-2`: http://www.php-fig.org/psr/psr-2/

‎cookbook/bundles/remove.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ starting a project, but you'll probably want to eventually remove it.
1818

1919
To disconnect the bundle from the framework, you should remove the bundle from
2020
the ``AppKernel::registerBundles()`` method. The bundle is normally found in
21-
the ``$bundles`` array but the AcmeDemoBundle is only registered in a
22-
development environment and you can find him in the if statement after::
21+
the ``$bundles`` array but the AcmeDemoBundle is only registered in the
22+
development environment and you can find it inside the if statement below::
2323

2424
// app/AppKernel.php
2525

@@ -96,8 +96,8 @@ rely on the bundle you are about to remove.
9696
.. tip::
9797

9898
If one bundle relies on another, in most it means that it uses some services
99-
from the bundle. Searching for a ``acme_demo`` string may help you spot
100-
them.
99+
from the bundle. Searching for the bundle alias string may help you spot
100+
them (e.g. ``acme_demo`` for bundles depending on AcmeDemoBundle).
101101

102102
.. tip::
103103

‎cookbook/form/form_collections.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ that Task, right inside the same form.
2020
including the ``ManyToMany`` association mapping definition on the Task's
2121
``tags`` property.
2222

23-
Let's start there: suppose that each ``Task`` belongs to multiple ``Tags``
23+
Let's start there: suppose that each ``Task`` belongs to multiple ``Tag``
2424
objects. Start by creating a simple ``Task`` class::
2525

2626
// src/Acme/TaskBundle/Entity/Task.php

‎cookbook/security/custom_authentication_provider.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,13 @@ a 403 Response is returned.
194194
does not require maintaining authentication sessions or login forms, it
195195
won't be used for this example.
196196

197+
.. note::
198+
199+
Returning prematurely from the listener is relevant only if you want to chain
200+
authentication providers (for example to allow anonymous users). If you want
201+
to forbid access to anonymous users and have a nice 403 error, you should set
202+
the status code of the response before returning.
203+
197204
The Authentication Provider
198205
---------------------------
199206

‎cookbook/security/custom_password_authenticator.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ the user::
2525

2626
use Symfony\Component\HttpFoundation\Request;
2727
use Symfony\Component\Security\Core\Authentication\SimpleFormAuthenticatorInterface;
28-
use Symfony\Component\Security\Core\Authentication\TokenInterface;
28+
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
2929
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
3030
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
3131
use Symfony\Component\Security\Core\Exception\AuthenticationException;

‎reference/forms/types/button.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,7 @@ Options
3838

3939
.. include:: /reference/forms/types/options/button_translation_domain.rst.inc
4040

41+
Overridden Options
42+
------------------
43+
4144
.. include:: /reference/forms/types/options/button_auto_initialize.rst.inc

‎reference/forms/types/checkbox.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ if the box is unchecked, the value will be set to false.
1414
| Options | - `value`_ |
1515
+-------------+------------------------------------------------------------------------+
1616
| Inherited | - `data`_ |
17-
| options | - `required`_ |
17+
| options | - `empty_data`_ |
18+
| | - `required`_ |
1819
| | - `label`_ |
1920
| | - `label_attr`_ |
2021
| | - `read_only`_ |
@@ -60,6 +61,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
6061

6162
.. include:: /reference/forms/types/options/data.rst.inc
6263

64+
.. include:: /reference/forms/types/options/empty_data.rst.inc
65+
6366
.. include:: /reference/forms/types/options/required.rst.inc
6467

6568
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/collection.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ forms, which is useful when creating forms that expose one-to-many relationships
2222
| | - `delete_empty`_ |
2323
+-------------+-----------------------------------------------------------------------------+
2424
| Inherited | - `label`_ |
25-
| | - `label_attr`_ |
26-
| options | - `error_bubbling`_ |
25+
| options | - `label_attr`_ |
26+
| | - `error_bubbling`_ |
2727
| | - `error_mapping`_ |
2828
| | - `by_reference`_ |
2929
| | - `empty_data`_ |

‎reference/forms/types/country.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ you should just use the ``choice`` type directly.
3131
| | - `empty_value`_ |
3232
| | - `error_bubbling`_ |
3333
| | - `error_mapping`_ |
34+
| | - `empty_data`_ |
3435
| | - `required`_ |
3536
| | - `label`_ |
3637
| | - `label_attr`_ |
@@ -74,6 +75,8 @@ These options inherit from the :doc:`choice </reference/forms/types/choice>` typ
7475

7576
These options inherit from the :doc:`form </reference/forms/types/form>` type:
7677

78+
.. include:: /reference/forms/types/options/empty_data.rst.inc
79+
7780
.. include:: /reference/forms/types/options/required.rst.inc
7881

7982
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/currency.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ should just use the ``choice`` type directly.
2424
| | - `preferred_choices`_ |
2525
| | - `empty_value`_ |
2626
| | - `error_bubbling`_ |
27+
| | - `empty_data`_ |
2728
| | - `required`_ |
2829
| | - `label`_ |
2930
| | - `label_attr`_ |
@@ -64,6 +65,8 @@ These options inherit from the :doc:`choice</reference/forms/types/choice>` type
6465

6566
These options inherit from the :doc:`form</reference/forms/types/form>` type:
6667

68+
.. include:: /reference/forms/types/options/empty_data.rst.inc
69+
6770
.. include:: /reference/forms/types/options/required.rst.inc
6871

6972
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/datetime.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ data can be a ``DateTime`` object, a string, a timestamp or an array.
2626
| | - `years`_ |
2727
| | - `months`_ |
2828
| | - `days`_ |
29+
| | - `with_minutes`_ |
2930
| | - `with_seconds`_ |
3031
| | - `model_timezone`_ |
3132
| | - `view_timezone`_ |
@@ -109,6 +110,8 @@ for more details.
109110

110111
.. include:: /reference/forms/types/options/days.rst.inc
111112

113+
.. include:: /reference/forms/types/options/with_minutes.rst.inc
114+
112115
.. include:: /reference/forms/types/options/with_seconds.rst.inc
113116

114117
.. include:: /reference/forms/types/options/model_timezone.rst.inc

‎reference/forms/types/email.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ The ``email`` field is a text field that is rendered using the HTML5
1111
| Rendered as | ``input`` ``email`` field (a text box) |
1212
+-------------+---------------------------------------------------------------------+
1313
| Inherited | - `max_length`_ |
14-
| options | - `required`_ |
14+
| options | - `empty_data`_ |
15+
| | - `required`_ |
1516
| | - `label`_ |
1617
| | - `label_attr`_ |
1718
| | - `data`_ |
@@ -34,6 +35,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
3435

3536
.. include:: /reference/forms/types/options/max_length.rst.inc
3637

38+
.. include:: /reference/forms/types/options/empty_data.rst.inc
39+
3740
.. include:: /reference/forms/types/options/required.rst.inc
3841

3942
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/entity.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ objects from the database.
2626
| options | - `expanded`_ |
2727
| | - `preferred_choices`_ |
2828
| | - `empty_value`_ |
29+
| | - `empty_data`_ |
2930
| | - `required`_ |
3031
| | - `label`_ |
3132
| | - `label_attr`_ |
@@ -196,6 +197,8 @@ These options inherit from the :doc:`choice </reference/forms/types/choice>` typ
196197

197198
These options inherit from the :doc:`form </reference/forms/types/form>` type:
198199

200+
.. include:: /reference/forms/types/options/empty_data.rst.inc
201+
199202
.. include:: /reference/forms/types/options/required.rst.inc
200203

201204
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/file.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ The ``file`` type represents a file input in your form.
1111
+-------------+---------------------------------------------------------------------+
1212
| Options | - `multiple`_ |
1313
+-------------+---------------------------------------------------------------------+
14-
| Inherited | - `required`_ |
15-
| options | - `label`_ |
14+
| Inherited | - `empty_data`_ |
15+
| options | - `required`_ |
16+
| | - `label`_ |
1617
| | - `label_attr`_ |
1718
| | - `read_only`_ |
1819
| | - `disabled`_ |
@@ -94,6 +95,8 @@ Inherited options
9495

9596
These options inherit from the :doc:`form </reference/forms/types/form>` type:
9697

98+
.. include:: /reference/forms/types/options/empty_data.rst.inc
99+
97100
.. include:: /reference/forms/types/options/required.rst.inc
98101

99102
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/form.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ on all fields.
1515

1616
.. include:: /reference/forms/types/options/data_class.rst.inc
1717

18+
.. include:: /reference/forms/types/options/empty_data.rst.inc
19+
1820
.. include:: /reference/forms/types/options/required.rst.inc
1921

2022
.. include:: /reference/forms/types/options/label.rst.inc
@@ -41,6 +43,8 @@ on all fields.
4143

4244
.. include:: /reference/forms/types/options/block_name.rst.inc
4345

46+
.. include:: /reference/forms/types/options/max_length.rst.inc
47+
4448
inherit_data
4549
------------
4650

‎reference/forms/types/integer.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ integers. By default, all non-integer values (e.g. 6.78) will round down (e.g. 6
1919
| | - `precision`_ |
2020
| | - `grouping`_ |
2121
+-------------+-----------------------------------------------------------------------+
22-
| Inherited | - `required`_ |
23-
| options | - `label`_ |
22+
| Inherited | - `empty_data`_ |
23+
| options | - `required`_ |
24+
| | - `label`_ |
2425
| | - `label_attr`_ |
2526
| | - `data`_ |
2627
| | - `read_only`_ |
@@ -77,6 +78,8 @@ Inherited options
7778

7879
These options inherit from the :doc:`form </reference/forms/types/form>` type:
7980

81+
.. include:: /reference/forms/types/options/empty_data.rst.inc
82+
8083
.. include:: /reference/forms/types/options/required.rst.inc
8184

8285
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/language.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ you should just use the ``choice`` type directly.
3232
| | - `empty_value`_ |
3333
| | - `error_bubbling`_ |
3434
| | - `error_mapping`_ |
35+
| | - `empty_data`_ |
3536
| | - `required`_ |
3637
| | - `label`_ |
3738
| | - `label_attr`_ |
@@ -75,6 +76,8 @@ These options inherit from the :doc:`choice </reference/forms/types/choice>` typ
7576

7677
These options inherit from the :doc:`form </reference/forms/types/form>` type:
7778

79+
.. include:: /reference/forms/types/options/empty_data.rst.inc
80+
7881
.. include:: /reference/forms/types/options/required.rst.inc
7982

8083
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/locale.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ you should just use the ``choice`` type directly.
3434
| | - `empty_value`_ |
3535
| | - `error_bubbling`_ |
3636
| | - `error_mapping`_ |
37+
| | - `empty_data`_ |
3738
| | - `required`_ |
3839
| | - `label`_ |
3940
| | - `label_attr`_ |
@@ -77,6 +78,8 @@ These options inherit from the :doc:`choice </reference/forms/types/choice>` typ
7778

7879
These options inherit from the :doc:`form </reference/forms/types/form>` type:
7980

81+
.. include:: /reference/forms/types/options/empty_data.rst.inc
82+
8083
.. include:: /reference/forms/types/options/required.rst.inc
8184

8285
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/money.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ how the input and output of the data is handled.
1919
| | - `precision`_ |
2020
| | - `grouping`_ |
2121
+-------------+---------------------------------------------------------------------+
22-
| Inherited | - `required`_ |
23-
| options | - `label`_ |
22+
| Inherited | - `empty_data`_ |
23+
| options | - `required`_ |
24+
| | - `label`_ |
2425
| | - `label_attr`_ |
2526
| | - `data`_ |
2627
| | - `read_only`_ |
@@ -87,6 +88,8 @@ Inherited Options
8788

8889
These options inherit from the :doc:`form </reference/forms/types/form>` type:
8990

91+
.. include:: /reference/forms/types/options/empty_data.rst.inc
92+
9093
.. include:: /reference/forms/types/options/required.rst.inc
9194

9295
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/number.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ you want to use for your number.
1515
| | - `precision`_ |
1616
| | - `grouping`_ |
1717
+-------------+----------------------------------------------------------------------+
18-
| Inherited | - `required`_ |
19-
| options | - `label`_ |
18+
| Inherited | - `empty_data`_ |
19+
| options | - `required`_ |
20+
| | - `label`_ |
2021
| | - `label_attr`_ |
2122
| | - `data`_ |
2223
| | - `read_only`_ |
@@ -73,6 +74,8 @@ Inherited Options
7374

7475
These options inherit from the :doc:`form </reference/forms/types/form>` type:
7576

77+
.. include:: /reference/forms/types/options/empty_data.rst.inc
78+
7679
.. include:: /reference/forms/types/options/required.rst.inc
7780

7881
.. include:: /reference/forms/types/options/label.rst.inc
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
.. versionadded:: 2.4
2-
The ``data_class`` option was introduced in Symfony 2.4.
3-
41
data_class
52
~~~~~~~~~~
63

@@ -9,6 +6,8 @@ data_class
96
This option is used to set the appropriate data mapper to be used by the form,
107
so you can use it for any form field type which requires an object.
118

9+
.. code-block:: php
10+
1211
$builder->add('media', 'sonata_media_type', array(
1312
'data_class' => 'Acme\DemoBundle\Entity\Media',
1413
));
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
max_length
22
~~~~~~~~~~
33

4-
**type**: ``integer``
4+
**type**: ``integer`` **default**: ``null``
55

6-
This option is used to add a ``maxlength`` attribute, which is used by
7-
some browsers to limit the amount of text in a field.
6+
If this option is not null, an attribute ``maxlength`` is added, which
7+
is used by some browsers to limit the amount of text in a field.
8+
9+
This is just a browser validation, so data must still be validated
10+
server-side.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.. versionadded:: 2.2
2+
The ``with_minutes`` option was introduced in Symfony 2.2.
3+
4+
with_minutes
5+
~~~~~~~~~~~~
6+
7+
**type**: ``Boolean`` **default**: ``true``
8+
9+
Whether or not to include minutes in the input. This will result in an additional
10+
input to capture minutes.

‎reference/forms/types/password.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ The ``password`` field renders an input password text box.
1212
| Options | - `always_empty`_ |
1313
+-------------+------------------------------------------------------------------------+
1414
| Inherited | - `max_length`_ |
15-
| options | - `required`_ |
15+
| options | - `empty_data`_ |
16+
| | - `required`_ |
1617
| | - `label`_ |
1718
| | - `label_attr`_ |
1819
| | - `trim`_ |
@@ -51,6 +52,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
5152

5253
.. include:: /reference/forms/types/options/max_length.rst.inc
5354

55+
.. include:: /reference/forms/types/options/empty_data.rst.inc
56+
5457
.. include:: /reference/forms/types/options/required.rst.inc
5558

5659
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/percent.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ This field adds a percentage sign "``%``" after the input box.
1818
| Options | - `type`_ |
1919
| | - `precision`_ |
2020
+-------------+-----------------------------------------------------------------------+
21-
| Inherited | - `required`_ |
22-
| options | - `label`_ |
21+
| Inherited | - `empty_data`_ |
22+
| options | - `required`_ |
23+
| | - `label`_ |
2324
| | - `label_attr`_ |
2425
| | - `data`_ |
2526
| | - `read_only`_ |
@@ -71,6 +72,8 @@ Inherited Options
7172

7273
These options inherit from the :doc:`form </reference/forms/types/form>` type:
7374

75+
.. include:: /reference/forms/types/options/empty_data.rst.inc
76+
7477
.. include:: /reference/forms/types/options/required.rst.inc
7578

7679
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/radio.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ If you want to have a Boolean field, use :doc:`checkbox </reference/forms/types/
1818
| Options | - `value`_ |
1919
+-------------+---------------------------------------------------------------------+
2020
| Inherited | - `data`_ |
21-
| options | - `required`_ |
21+
| options | - `empty_data`_ |
22+
| | - `required`_ |
2223
| | - `label`_ |
2324
| | - `label_attr`_ |
2425
| | - `read_only`_ |
@@ -54,6 +55,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
5455

5556
.. include:: /reference/forms/types/options/data.rst.inc
5657

58+
.. include:: /reference/forms/types/options/empty_data.rst.inc
59+
5760
.. include:: /reference/forms/types/options/required.rst.inc
5861

5962
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/search.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ Read about the input search field at `DiveIntoHTML5.info`_
1313
| Rendered as | ``input search`` field |
1414
+-------------+----------------------------------------------------------------------+
1515
| Inherited | - `max_length`_ |
16-
| options | - `required`_ |
16+
| options | - `empty_data`_ |
17+
| | - `required`_ |
1718
| | - `label`_ |
1819
| | - `label_attr`_ |
1920
| | - `trim`_ |
@@ -35,6 +36,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
3536

3637
.. include:: /reference/forms/types/options/max_length.rst.inc
3738

39+
.. include:: /reference/forms/types/options/empty_data.rst.inc
40+
3841
.. include:: /reference/forms/types/options/required.rst.inc
3942

4043
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/text.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ The text field represents the most basic input text field.
1010
| Rendered as | ``input`` ``text`` field |
1111
+-------------+--------------------------------------------------------------------+
1212
| Inherited | - `max_length`_ |
13-
| options | - `required`_ |
13+
| options | - `empty_data`_ |
14+
| | - `required`_ |
1415
| | - `label`_ |
1516
| | - `label_attr`_ |
1617
| | - `data`_ |
@@ -34,6 +35,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
3435

3536
.. include:: /reference/forms/types/options/max_length.rst.inc
3637

38+
.. include:: /reference/forms/types/options/empty_data.rst.inc
39+
3740
.. include:: /reference/forms/types/options/required.rst.inc
3841

3942
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/textarea.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Renders a ``textarea`` HTML element.
1010
| Rendered as | ``textarea`` tag |
1111
+-------------+------------------------------------------------------------------------+
1212
| Inherited | - `max_length`_ |
13+
| options | - `empty_data`_ |
1314
| options | - `required`_ |
1415
| | - `label`_ |
1516
| | - `label_attr`_ |
@@ -33,6 +34,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
3334

3435
.. include:: /reference/forms/types/options/max_length.rst.inc
3536

37+
.. include:: /reference/forms/types/options/empty_data.rst.inc
38+
3639
.. include:: /reference/forms/types/options/required.rst.inc
3740

3841
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/time.rst

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ as a ``DateTime`` object, a string, a timestamp or an array.
1717
+----------------------+-----------------------------------------------------------------------------+
1818
| Options | - `widget`_ |
1919
| | - `input`_ |
20+
| | - `with_minutes`_ |
2021
| | - `with_seconds`_ |
2122
| | - `hours`_ |
2223
| | - `minutes`_ |
@@ -83,13 +84,21 @@ widget
8384

8485
The basic way in which this field should be rendered. Can be one of the following:
8586

86-
* ``choice``: renders two (or three if `with_seconds`_ is true) select inputs.
87+
* ``choice``: renders one, two (default) or three select inputs (hour, minute,
88+
second), depending on the `with_minutes`_ and `with_seconds`_ options.
8789

88-
* ``text``: renders a two or three text inputs (hour, minute, second).
90+
* ``text``: renders one, two (default) or three text inputs (hour, minute,
91+
second), depending on the `with_minutes`_ and `with_seconds`_ options.
8992

90-
* ``single_text``: renders a single input of type text. User's input will
93+
* ``single_text``: renders a single input of type ``time``. User's input will
9194
be validated against the form ``hh:mm`` (or ``hh:mm:ss`` if using seconds).
9295

96+
.. caution::
97+
98+
Combining the widget type ``single_text`` and the `with_minutes`_ option
99+
set to ``false`` can cause unexpected behavior in the client as the input
100+
type ``time`` might not support selecting an hour only.
101+
93102
input
94103
~~~~~
95104

@@ -106,6 +115,8 @@ your underlying object. Valid values are:
106115
The value that comes back from the form will also be normalized back into
107116
this format.
108117

118+
.. include:: /reference/forms/types/options/with_minutes.rst.inc
119+
109120
.. include:: /reference/forms/types/options/with_seconds.rst.inc
110121

111122
.. include:: /reference/forms/types/options/hours.rst.inc

‎reference/forms/types/timezone.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ you should just use the ``choice`` type directly.
2525
| options | - `expanded`_ |
2626
| | - `preferred_choices`_ |
2727
| | - `empty_value`_ |
28+
| | - `empty_data`_ |
2829
| | - `required`_ |
2930
| | - `label`_ |
3031
| | - `label_attr`_ |
@@ -66,6 +67,8 @@ These options inherit from the :doc:`choice </reference/forms/types/choice>` typ
6667

6768
These options inherit from the :doc:`form </reference/forms/types/form>` type:
6869

70+
.. include:: /reference/forms/types/options/empty_data.rst.inc
71+
6972
.. include:: /reference/forms/types/options/required.rst.inc
7073

7174
.. include:: /reference/forms/types/options/label.rst.inc

‎reference/forms/types/url.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ have a protocol.
1414
| Options | - `default_protocol`_ |
1515
+-------------+-------------------------------------------------------------------+
1616
| Inherited | - `max_length`_ |
17-
| options | - `required`_ |
17+
| options | - `empty_data`_ |
18+
| | - `required`_ |
1819
| | - `label`_ |
1920
| | - `label_attr`_ |
2021
| | - `data`_ |
@@ -49,6 +50,8 @@ These options inherit from the :doc:`form </reference/forms/types/form>` type:
4950

5051
.. include:: /reference/forms/types/options/max_length.rst.inc
5152

53+
.. include:: /reference/forms/types/options/empty_data.rst.inc
54+
5255
.. include:: /reference/forms/types/options/required.rst.inc
5356

5457
.. include:: /reference/forms/types/options/label.rst.inc

0 commit comments

Comments
 (0)
Please sign in to comment.