Commit Graph

5105 Commits

Author SHA1 Message Date
Vincent Langlet
255b608d6d
Improve ExtractorInterface phpdoc 2021-04-01 12:02:24 +02:00
Christian Flothmann
9139f774af Merge branch '5.2' into 5.x
* 5.2:
  fix merge
2021-03-28 11:59:21 +02:00
Christian Flothmann
d33973bbbe fix merge 2021-03-28 11:59:03 +02:00
Christian Flothmann
42a56528e9 Merge branch '5.2' into 5.x
* 5.2:
  skip intl dependent tests if the extension is missing
  make DateCaster tests timezone-agnostic
  error if the input string couldn't be parsed as a date
  IntegerType: Always use en for IntegerToLocalizedStringTransformer Fixes #40456
  Uses the correct assignment action for console options depending if they are short or long
  [HttpKernel] ConfigDataCollector to return known data without the need of a Kernel
  [HttpClient] fix using stream_copy_to_stream() with responses cast to php streams
  FIx Trying to clone an uncloneable object of class
2021-03-28 11:44:11 +02:00
Christian Flothmann
6e1015fbca Merge branch '4.4' into 5.2
* 4.4:
  skip intl dependent tests if the extension is missing
  make DateCaster tests timezone-agnostic
  error if the input string couldn't be parsed as a date
  IntegerType: Always use en for IntegerToLocalizedStringTransformer Fixes #40456
  Uses the correct assignment action for console options depending if they are short or long
  [HttpKernel] ConfigDataCollector to return known data without the need of a Kernel
  [HttpClient] fix using stream_copy_to_stream() with responses cast to php streams
  FIx Trying to clone an uncloneable object of class
2021-03-28 11:42:18 +02:00
Christian Flothmann
71da904de0 skip intl dependent tests if the extension is missing 2021-03-28 10:05:52 +02:00
Fabien Potencier
5666a45a02 bug #40598 [Form] error if the input string couldn't be parsed as a date (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] error if the input string couldn't be parsed as a date

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #40597
| License       | MIT
| Doc PR        |

When the Intl polyfill is used instead of the PHP intl extension, the
intl_get_error_code() function always returns 0 no matter if the input
string could be parsed.

Commits
-------

5ce5300da3 error if the input string couldn't be parsed as a date
2021-03-28 08:36:08 +02:00
Christian Flothmann
5ce5300da3 error if the input string couldn't be parsed as a date
When the Intl polyfill is used instead of the PHP intl extension, the
intl_get_error_code() function always returns 0 no matter if the input
string could be parsed.
2021-03-27 18:05:23 +01:00
Warxcell
83b836dbc9 IntegerType: Always use en for IntegerToLocalizedStringTransformer
Fixes #40456
2021-03-26 12:41:55 +02:00
Alexander M. Turek
c8b48d8bbb feature #40430 [Form] Add "form_attr" FormType option (cristoforocervino)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Form] Add "form_attr" FormType option

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      |no
| New feature?  | yes
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | [#15108](https://github.com/symfony/symfony-docs/pull/15108)

## What is this about

This PR add support for [`form` attribute](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fae-form) to Symfony Form ([browser compatibility](https://caniuse.com/form-attribute)).

The `form` attribute allows form elements to override their associated form (which is their nearest ancestor form element by default). This is extremely useful to solve **nested form problem** and allows **form children** to be **rendered outside form tag** while still working as expected.

## New "form_attr" FormType option

#### form_attr
**type**: `bool` or `string` **default**: `false`

If set to `true` on a **root form**, adds [`form` attribute](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fae-form) on every children with their root **form id**.
This allows you to render form children outside the form tag and avoid **nested form problem** in some situations while keeping the form working properly.

If set to `true` on a **child**, adds [`form` attribute](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fae-form) on it with its **root form id**.
This allows you to render **that child** outside the form tag and avoid **nested form problem** in some situations while keeping the form working properly.

If root form has no `id` (this may happen by create an *unnamed* form), you can set it to a `string` identifier to be used at `FormView` level to link children and root form anyway.

## Usage on Root Form Example

#### Form Type
Enable the feature by setting `form_attr` to `true` on the root form.

```php
use Symfony\Component\Form\Extension\Core\Type;

class ListFilterType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('search', Type\SearchType::class)
            ->add('orderBy', Type\ChoiceType::class, [
                'choices' => [
                    // ...
                ],
            ])
            ->add('perPage', Type\ChoiceType::class, [
                'choices' => [
                    // ...
                ],
            ])
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefault('form_attr', true); // <--- Set this to true
    }
}

```

#### Twig

The following Twig template **works properly** even if form children are **outside** their form tag ([browser compatibility](https://caniuse.com/form-attribute)).

```twig

<div class="header-filters">
    {{ form_errors(form) }}
    {{ form_row(form.search) }} {# has attribute form="list_filter" #}
    {{ form_row(form.orderBy) }} {# has attribute form="list_filter" #}
</div>

<!-- -->
<!-- Some other HTML content, like a table or even another Symfony form -->
<!-- -->

<div class="footer-filters">
    {{ form_row(form.perPage) }} {# has attribute form="list_filter" #}
</div>
{{ form_start(form) }} {# id="list_filter" #}
{{ form_end(form) }}
```
 Every form elements work properly even outside form tag.

## Usage on Form Child Example

Enable the feature by setting `form_attr` to `true` on selected child.

```php
use Symfony\Component\Form\Extension\Core\Type;

class ListFilterType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('search', Type\SearchType::class)
            ->add('orderBy', Type\ChoiceType::class, [
                'choices' => [
                    // ...
                ],
            ])
            ->add('perPage', Type\ChoiceType::class, [
                'form_attr' => true,  // <--- Set this to true
                'choices' => [
                    // ...
                ],
            ])
    }
}

```

#### Twig

The following Twig template **works properly** even if `form.perPage` is **outside** form tag ([browser compatibility](https://caniuse.com/form-attribute)).

```twig

<div class="header-filters">
    {{ form_start(form) }} {# id="list_filter" #}
        {{ form_errors(form) }}
        {{ form_row(form.search) }}
        {{ form_row(form.orderBy) }}
    {{ form_end(form, {'render_rest': false}) }}
</div>

<!-- -->
<!-- Some other HTML content, like a table or even another Symfony form -->
<!-- -->

<div class="footer-filters">
    {{ form_row(form.perPage) }} {# has attribute form="list_filter" #}
</div>
```
 `form.perPage` element work properly even outside form tag.

Commits
-------

5f913cec74 [Form] Add "form_attr" FormType option
2021-03-18 16:04:16 +01:00
Cristoforo Cervino
5f913cec74 [Form] Add "form_attr" FormType option 2021-03-18 16:04:09 +01:00
Nicolas Grekas
6fe82d8be7 Deprecate configuring tag names and service ids in compiler passes 2021-03-15 19:33:21 +01:00
Alexander M. Turek
906b609d0e Merge branch '5.2' into 5.x
* 5.2:
  Bump Symfony version to 5.2.6
  Update VERSION for 5.2.5
  Update CHANGELOG for 5.2.5
  Update translations for Norwegian Nynorsk (nn) #38756
  Fix eventListener initialization when eventSubscriber constructor dispatch an event
  [FrameworkBundle] fix XSD
  clear unchecked choice radio boxes even if clear missing is set to false
  Fix `ConstraintViolation#getPropertyPath()` to always return `string`
  [ErrorHandler] Added missing type annotations to FlattenException
  [TwigBridge] Allow version 3 of the Twig extra packages
  Fix FrameworkBundle PropertyAccess definition when not in debug
2021-03-10 23:12:52 +01:00
Alexander M. Turek
16bacb1b27 Merge branch '4.4' into 5.2
* 4.4:
  Update translations for Norwegian Nynorsk (nn) #38756
  Fix eventListener initialization when eventSubscriber constructor dispatch an event
  clear unchecked choice radio boxes even if clear missing is set to false
  [ErrorHandler] Added missing type annotations to FlattenException
  [TwigBridge] Allow version 3 of the Twig extra packages
  Fix FrameworkBundle PropertyAccess definition when not in debug
2021-03-10 23:10:15 +01:00
Gunnstein Lye
9a4a04664f Update translations for Norwegian Nynorsk (nn) #38756 2021-03-10 14:26:08 +01:00
Fabien Potencier
2fb98c8104 bug #40417 [Form] clear unchecked choice radio boxes even if clear missing is set to false (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] clear unchecked choice radio boxes even if clear missing is set to false

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #16802
| License       | MIT
| Doc PR        |

Commits
-------

e7b4851ea0 clear unchecked choice radio boxes even if clear missing is set to false
2021-03-09 10:34:10 +01:00
Christian Flothmann
e7b4851ea0 clear unchecked choice radio boxes even if clear missing is set to false 2021-03-08 18:14:47 +01:00
Alexander M. Turek
0f92ad4fa8 Merge branch '5.2' into 5.x
* 5.2:
  [WebLink] Removed unused property
  Fix method name compare in ResolveControllerNameSubscriber
  add uz security validator and form validator file
  uzb translation
2021-03-07 16:51:58 +01:00
Alexander M. Turek
4667c85098 Merge branch '4.4' into 5.2
* 4.4:
  [WebLink] Removed unused property
  Fix method name compare in ResolveControllerNameSubscriber
  add uz security validator and form validator file
  uzb translation
2021-03-07 16:51:33 +01:00
shokhaa
73392924bf add uz security validator and form validator file 2021-03-07 00:00:06 +05:00
Fabien Potencier
e53bb8b4f2 Merge branch '5.2' into 5.x
* 5.2:
  Fix #36973: Command description consistency
  Render email once
2021-03-06 09:05:19 +01:00
Fabien Potencier
7ed3d36f53 Merge branch '4.4' into 5.2
* 4.4:
  Fix #36973: Command description consistency
  Render email once
2021-03-06 08:59:01 +01:00
Dane Powell
01e18b039a
Fix #36973: Command description consistency 2021-03-05 09:58:50 -08:00
Fabien Potencier
33791925af Merge branch '5.2' into 5.x
* 5.2:
  [Validator] Fix return types
  Add translation for Belarusian
  fix parsing calls of methods named "method"
  [Security] Remove unnecessary inherited doc annotation
  deal with indented heredoc/nowdoc tokens
  Adding templates for Belarusian
2021-03-04 16:41:30 +01:00
Fabien Potencier
5fea563f4a Merge branch '4.4' into 5.2
* 4.4:
  [Validator] Fix return types
  Add translation for Belarusian
  fix parsing calls of methods named "method"
  deal with indented heredoc/nowdoc tokens
  Adding templates for Belarusian
2021-03-04 16:41:09 +01:00
Alexander M. Turek
ea741e6165 minor #40297 Add missing translations for Belarusian (Nyholm, OxanaKozlova)
This PR was merged into the 4.4 branch.

Discussion
----------

Add missing translations for Belarusian

| Q             | A
| ------------- | ---
| Branch?       | 4.4 <!-- see below -->
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #38727 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | N/A <!-- required for new features -->

Add translations for Belarusian

Commits
-------

1b84d5d23b Add translation for Belarusian
8e1d3285ed Adding templates for Belarusian
2021-03-03 18:05:48 +01:00
OxanaKozlova
1b84d5d23b Add translation for Belarusian 2021-03-03 19:55:00 +03:00
Alexander M. Turek
f49ca6f9cc Merge branch '5.2' into 5.x
* 5.2:
  improve exception message if symfony/security-csrf is missing
  fix: MockResponse total_time should not be simulated when provided
2021-03-01 01:41:04 +01:00
Alexander M. Turek
82e3b17cf4 Merge branch '4.4' into 5.2
* 4.4:
  improve exception message if symfony/security-csrf is missing
  fix: MockResponse total_time should not be simulated when provided
2021-03-01 01:40:14 +01:00
Christian Flothmann
1a26ed43e7 improve exception message if symfony/security-csrf is missing 2021-02-26 11:19:16 +01:00
Nyholm
f90d3ec203 [Form] Remove hard dependency on symfony/intl 2021-02-25 08:25:40 +01:00
Nyholm
8e1d3285ed
Adding templates for Belarusian 2021-02-22 22:11:34 +01:00
Alexander M. Turek
bf30fa45ee Merge branch '5.2' into 5.x
* 5.2:
  [Form] Ignoring invalid forms from delete_empty behavior in CollectionType
  Add Symfony Armenian Translations
  cs fix
  Add different header notations to tests
2021-02-22 07:55:17 +01:00
Alexander M. Turek
8cec0b6391 Merge branch '4.4' into 5.2
* 4.4:
  [Form] Ignoring invalid forms from delete_empty behavior in CollectionType
  Add Symfony Armenian Translations
  cs fix
  Add different header notations to tests
2021-02-22 07:48:33 +01:00
Fabien Potencier
8054d1d04c bug #40258 [Form] Ignoring invalid forms from delete_empty behavior in CollectionType (yceruto)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Form] Ignoring invalid forms from delete_empty behavior in CollectionType

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37660
| License       | MIT
| Doc PR        | -

As expained on linked issue, empty forms cannot be removed if they are invalid upon submitting (e.g. transformation failures). Thus, form errors can be displayed properly to the end user.

Commits
-------

e4911554e3 [Form] Ignoring invalid forms from delete_empty behavior in CollectionType
2021-02-21 18:50:09 +01:00
Yonel Ceruto
e4911554e3 [Form] Ignoring invalid forms from delete_empty behavior in CollectionType 2021-02-21 18:50:02 +01:00
Erik Saunier
d1c3e21eff Add Symfony Armenian Translations 2021-02-19 18:17:03 +01:00
Nicolas Grekas
857cf336a1 Merge branch '5.2' into 5.x
* 5.2:
  Ignore indirect deprecation triggered by doctrine/orm
  Symfony Armenian Translations
  [Translation] Allow using dashes in locale when linting Xliff files
  use the right context for properties defined in traits
2021-02-16 11:14:08 +01:00
Nicolas Grekas
00b4b76460 Merge branch '4.4' into 5.2
* 4.4:
  Ignore indirect deprecation triggered by doctrine/orm
  Symfony Armenian Translations
  [Translation] Allow using dashes in locale when linting Xliff files
  use the right context for properties defined in traits
2021-02-16 11:13:48 +01:00
Tigran Azatyan
93fe4a213e Symfony Armenian Translations 2021-02-16 08:10:14 +01:00
Robin Chalas
a4c5edc5ff Merge branch '5.2' into 5.x
* 5.2:
  [Workflow] Re-add InvalidTokenConfigurationException for BC
  Fix PHP 8.1 null values
  [Console] Fix PHP 8.1 null error for preg_match flag
  Fix: Article
  Definition::removeMethodCall should remove all matching calls
  [HttpFoundation] Fix typo in exception message
  mark the LazyIterator class as internal
  fix extracting mixed type-hinted property types
  [Worflow] Fixed GuardListener when using the new Security system
  keep valid submitted choices when additional choices are submitted
2021-02-15 19:57:44 +01:00
Robin Chalas
4365af6ce8 Merge branch '4.4' into 5.2
* 4.4:
  Fix PHP 8.1 null values
  [Console] Fix PHP 8.1 null error for preg_match flag
  Fix: Article
  Definition::removeMethodCall should remove all matching calls
  mark the LazyIterator class as internal
  fix extracting mixed type-hinted property types
  keep valid submitted choices when additional choices are submitted
2021-02-15 19:55:04 +01:00
Christian Flothmann
4ee48c44e5 minor #40180 Fix: Article (localheinz)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix: Article

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

This pull request

* [x] fixes usages of the indefinite article `a` where `an` should be used instead

Commits
-------

34b320ba97 Fix: Article
2021-02-15 12:26:08 +01:00
Christian Flothmann
0574c1586a bug #39659 [Form] keep valid submitted choices when additional choices are submitted (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] keep valid submitted choices when additional choices are submitted

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #9738
| License       | MIT
| Doc PR        |

Commits
-------

85989c3678 keep valid submitted choices when additional choices are submitted
2021-02-15 12:22:00 +01:00
Andreas Möller
34b320ba97
Fix: Article 2021-02-14 13:29:41 +01:00
Nicolas Grekas
f2ed81b55e Merge branch '5.2' into 5.x
* 5.2:
  [HttpKernel] fix transient test
  [FrameworkBundle] Fix freshness checks with boolean parameters on routes
  forward the label_html option to expanded choice fields
  [FrameworkBundle] fix registering "annotations.cache" on the "container.hot_path"
  Add some information about the username in CONTRIBUTORS
2021-02-10 18:27:22 +01:00
Christian Flothmann
fbe49cf84d forward the label_html option to expanded choice fields 2021-02-09 09:56:11 +01:00
Nicolas Grekas
20bb3cb3ab Merge branch '5.2' into 5.x
* 5.2:
  merge translation parameters with value configured for parent form
  scan directories for translations sequentially
  Fix kafka tests
  Fix "provide" declarations
  Provide implemented packages of replaced dependencies
  Always autoload string functions on symfony/symfony
2021-02-08 11:24:30 +01:00
Christian Flothmann
3de453c368 merge translation parameters with value configured for parent form 2021-02-07 15:53:40 +01:00
Jérémy Derussé
02cbb3a92c
Merge branch '5.2' into 5.x
* 5.2:
  Use createMock() instead of a getter
  [ErrorHandler] Fix strpos error when trying to call a method without a name
  use proper keys to not override appended files
  take into account all label related options
  Fix console logger according to PSR-3
2021-01-28 23:08:00 +01:00