Commit Graph

41334 Commits

Author SHA1 Message Date
Fabien Potencier
a6aa08e166 feature #38296 [lock] Provides default implementation when store does not supports the behavior (jderusse)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[lock] Provides default implementation when store does not supports the behavior

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

All stores does not provide the same behaviors. Some are blocking, some allows shared Locks, ...
Issue is: When people use `lock` to use a behavior that is not supported by the store, they get an `UnsuportedException`, but they don't have any way to know if the store supports or not the behavior they want to use.

ie: when using the FrameworkBundle
```yaml
framework:
    lock: '%env(LOCK_DSN)%'
```
User (or bundle) can't use safely `$lock->acquire(true)` or `$lock->acquireRead()`.

Given it's very easy to provide an fallback implementation to those behavior, this PR
- use fallback implementation when store does not support the behavior
- deprecate the RetryTillSaveStore (not needed anymore)

Commits
-------

575b391b9b [lock] Provides default implementation when store does not supports the behavior
2020-09-27 05:25:42 +02:00
Jérémy Derussé
575b391b9b [lock] Provides default implementation when store does not supports the behavior 2020-09-27 05:25:36 +02:00
Fabien Potencier
934b125dff feature #38298 [Notifier] Add Sendinblue notifier. (ptondereau)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Notifier] Add Sendinblue notifier.

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

Add Sendinblue SMS notifier bridge.

Commits
-------

e7300a8580 Add Sendinblue notifier.
2020-09-27 05:14:32 +02:00
Pierre Tondereau
e7300a8580 Add Sendinblue notifier. 2020-09-26 11:58:00 +02:00
Fabien Potencier
9e4f511cbf Fix CS 2020-09-26 07:31:43 +02:00
Fabien Potencier
013bbcc23e minor #38303 [Messenger] Fix misleading comment about time-limit (sylfabre)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Fix misleading comment about time-limit

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

The current explanation of the time-limit option of the `messenger:consume` command is misleading as it lets you think that this is an enforced hard limit.

For instance, you may think that a command started with `--time-limit=10` will stop once 10 seconds are elapsed, no matter what.

Actually, two things happen:
- Once 10 seconds have elapsed, then the worker won't receive and handle any other message
- The worker will keep running until the currently handled message is fully handled so it can last way longer than 10 seconds, then it will stop.

I'm not sure this is behavior is actually a bug or not, but the current documentation does not describe the current behavior

Commits
-------

21176646e9 [Messenger] Fix misleading comment about time-limit
2020-09-26 07:30:40 +02:00
Fabien Potencier
ffb7f0e36f minor #38304 [Translation] Allow Translatable objects to be used as strings (tgalopin)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Translation] Allow Translatable objects to be used as strings

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Allow Translatable objects to be used as strings.

Commits
-------

0ba206420e [Translation] Allow Translatable objects to be used as strings
2020-09-26 07:28:36 +02:00
Fabien Potencier
6a5571552f Fix CS 2020-09-26 07:26:20 +02:00
Steve Grunwell
7877a5b488 [PhpUnitBridge] Enable a maximum PHPUnit version to be set via SYMFONY_MAX_PHPUNIT_VERSION 2020-09-25 14:59:28 -04:00
Titouan Galopin
0ba206420e [Translation] Allow Translatable objects to be used as strings 2020-09-25 18:10:29 +02:00
Sylvain Fabre
21176646e9 [Messenger] Fix misleading comment about time-limit 2020-09-25 15:58:44 +02:00
Jordan de Laune
96a0e5fca1 Register the binary types as well 2020-09-25 07:57:18 +02:00
Matthieu Napoli
c3e0336596 [DomCrawler] Add assertFormValue() and assertNoFormValue() in WebTestCase 2020-09-24 17:08:19 +02:00
Fabien Potencier
af90e1e286 feature #38287 [DomCrawler] Add checkbox assertions for functional tests (mnapoli)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[DomCrawler] Add checkbox assertions for functional tests

| Q             | A
| ------------- | ---
| Branch?       | master for features
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       |
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Add new assertions for checkboxes, to use in functional tests.

Example:

```php
    public function testAssertCheckboxChecked()
    {
        $this->visit('/edit-form');

        $this->client->submitForm('Save', [
            'activateMembership' => 'on',
        ]);

        self::assertResponseIsSuccessful();
        // Check that the field is checked after the form was submitted
        self::assertCheckboxChecked('activateMembership');
    }
```

This wasn't possible to achieve with the existing `self::assertInputValueSame()` assertion.

Commits
-------

f26758e1c0 [DomCrawler] Add `assertCheckboxChecked()`
2020-09-24 17:01:52 +02:00
Fabien Potencier
2bdcf4ac8f feature #36326 [Validator] Add invalid datetime message in Range validator (przemyslaw-bogusz)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Validator] Add invalid datetime message in Range validator

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

When the validated value is invalid (it isn't a number nor a datetime), but `min` or `max` option indicate that the `Range` constraint is being used to validate a datetime, the displayed message will be `This value should be a valid datetime` instead of `This value should be a valid number`. This PR replaces #35998.

Commits
-------

c77730699e [Validator] Add invalid datetime message in Range validator
2020-09-24 16:49:32 +02:00
Przemysław Bogusz
c77730699e [Validator] Add invalid datetime message in Range validator 2020-09-24 16:49:16 +02:00
Fabien Potencier
59f712475b feature #38243 [HttpKernel] Auto-register kernel as an extension (HypeMC)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpKernel] Auto-register kernel as an extension

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Symfony already supports having the kernel as an extension. This is evident by the fact that the [`config:dump-reference` and `debug:config`](https://github.com/symfony/symfony/pull/36186) commands check whether the kernel implements the `ExtensionInterface`. Nonetheless, it's still required to register the kernel manually as an extension.

With this PR the kernel will be automatically registered as an extension if it implements the `ExtensionInterface`. This is the same logic as when the kernel implements the `CompilerPassInterface`.

Commits
-------

9c34980869 Auto-register kernel as an extension
2020-09-24 16:31:11 +02:00
Fabien Potencier
5c48235e71 feature #38277 [Mailer] Added Sendinblue bridge (drixs6o9)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Mailer] Added Sendinblue bridge

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | [https://github.com/symfony/symfony-docs/pull/14272](https://github.com/symfony/symfony-docs/pull/14272)
| Recipe | [https://github.com/symfony/recipes/pull/822](https://github.com/symfony/recipes/pull/822)

<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Never break backward compatibility (see https://symfony.com/bc).
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too.)
 - Features and deprecations must be submitted against branch master.
-->

N.B. I had a little help from [Pierre TONDEREAU](https://github.com/ptondereau) for the API.

Commits
-------

836a20350b [Mailer] Added Sendinblue bridge
2020-09-24 16:10:39 +02:00
drixs6o9
836a20350b [Mailer] Added Sendinblue bridge 2020-09-24 16:10:25 +02:00
Fabien Potencier
6e9949b9b2 feature #35956 [Form] Added "html5" option to both MoneyType and PercentType (romaricdrigon)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Form] Added "html5" option to both MoneyType and PercentType

| Q             | A
| ------------- | ---
| Branch?       | master for features
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       |  -
| License       | MIT
| Doc PR        | TBD

Hello,

In the same way that [NumberType](https://symfony.com/doc/current/reference/forms/types/number.html) offers a `html5` option to render a `number` input instead of a `text` input, this PR adds the same option to both `MoneyType` and `PercentType`. Number inputs offer a better UI, especially on mobile (specific keyboard), and they accept extra HTML attributes, such as `max=100`, which are quite useful.

The challenge is that `number` inputs need a "raw" value, nor formatted nor localized.
Format is described here https://www.w3.org/TR/html51/sec-forms.html#date-time-and-number-formats (non-normative, but tested on a few browsers). It matches number formatting for `en` locale (which is great, since it is the one provided by Symfony Intl polyflil), without grouping.

Implementation was done in a manner similar to `NumberType` for `MoneyType`.
`PercentType` required to modify `PercentToLocalizedStringTransformer` too.

As a bonus, `PercentType` had no tests at all, I added a few.

I wanted to get some feedback on the idea first, remaining steps:
 - update `CHANGELOG.md`
 - update the doc

Commits
-------

f7312a48ea [Form] Added "html5" option to both MoneyType and PercentType
2020-09-24 15:56:19 +02:00
Fabien Potencier
2e819f3ba9 Revert "feature #33381 [Form] dispatch submit events for disabled forms too (xabbuh)"
This reverts commit dc63d712ab, reversing
changes made to 59ae592909.
2020-09-24 15:50:42 +02:00
Romaric Drigon
f7312a48ea [Form] Added "html5" option to both MoneyType and PercentType 2020-09-24 15:48:47 +02:00
Kevin Bond
f20a318f37 [String] allow passing null to string functions 2020-09-24 11:57:23 +02:00
Fabien Potencier
d635390a39 bug #38273 Always require SQL comment hint (lexthink)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Always require SQL comment hint

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

The `GuidType` does not always return true, because it is mapped to the native uuid type if available. But `AbstractBinaryUidType` and `AbstractUidType`  are not mapped like that, so they always requires the comment hint to avoid issues when diffing the schema (the DB introspection would detect a `GuidType` and so a change would be needed).

Commits
-------

33e78b43a4 Always require SQL comment hint
2020-09-24 11:54:29 +02:00
Matthieu Napoli
f26758e1c0 [DomCrawler] Add assertCheckboxChecked() 2020-09-24 10:27:18 +02:00
Christian Flothmann
9323b75603 Merge branch '5.1' into master
* 5.1:
  fix compatibility with Doctrine DBAL 3
2020-09-24 10:13:58 +02:00
Christian Flothmann
79686c63ef Merge branch '4.4' into 5.1
* 4.4:
  fix compatibility with Doctrine DBAL 3
2020-09-24 09:56:38 +02:00
Christian Flothmann
a03885168e fix compatibility with Doctrine DBAL 3 2020-09-24 08:54:33 +02:00
Manuel Alejandro Paz Cetina
33e78b43a4 Always require SQL comment hint 2020-09-23 01:30:05 -05:00
Fabien Potencier
7cb8ba585d Fix CS 2020-09-22 11:22:20 +02:00
Fabien Potencier
90056b871a feature #38176 [Config] Adding the "info" to a missing option error messages (weaverryan)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Config] Adding the "info" to a missing option error messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | None
| License       | MIT
| Doc PR        | Not needed

New error:

<img width="1063" alt="Screen Shot 2020-09-13 at 10 51 32 AM" src="https://user-images.githubusercontent.com/121003/93021186-6329ff00-f5af-11ea-83c6-98581b12ef75.png">

I used the missing `class` just as an example. I hit this while building a new feature in Symfony. It occurred to me that if, for example, you activate some feature in config and that feature has a required sub-key, why not print the `info()` for that sub key to make it discoverable?

Commits
-------

3780f122c7 adding the description to a missing option
2020-09-22 11:20:33 +02:00
Fabien Potencier
e9071e6a4d bug #38250 Return AbstractUid as string (lexthink)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Return AbstractUid as string

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Should return AbstractUidType as string.

Commits
-------

1a9d76a869 Return AbstractUid as string
2020-09-22 06:58:01 +02:00
Christian Flothmann
61bfea459b fix tests 2020-09-21 10:49:48 +02:00
Manuel Alejandro Paz Cetina
1a9d76a869
Return AbstractUid as string 2020-09-21 00:26:47 -05:00
Christian Flothmann
b5587b24b8 minor #38245 replace expectExceptionMessageRegExp() with expectExceptionMessageMat… (xabbuh)
This PR was merged into the 5.2-dev branch.

Discussion
----------

replace expectExceptionMessageRegExp() with expectExceptionMessageMat…

…ches()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

593a94c932 replace expectExceptionMessageRegExp() with expectExceptionMessageMatches()
2020-09-20 10:06:55 +02:00
Christian Flothmann
66332bc806 Merge branch '5.1' into master
* 5.1:
  fix class name
2020-09-20 10:00:37 +02:00
Christian Flothmann
593a94c932 replace expectExceptionMessageRegExp() with expectExceptionMessageMatches() 2020-09-20 09:51:18 +02:00
Christian Flothmann
6e40ca3183 fix class name 2020-09-20 09:33:50 +02:00
Christian Flothmann
ccecffeff6 Merge branch '5.1' into master
* 5.1: (25 commits)
  stop using the deprecated at() PHPUnit matcher
  fix lowest allowed version of the HTTP client contracts
  fix lowest allowed version for the PHPUnit bridge
  fix merge
  fix merge
  drop logger mock in favor of using the BufferingLogger
  catch ValueError thrown on PHP 8
  [Yaml Parser] Fix edge cases when parsing multiple documents
  fix parsing comments not prefixed by a space
  [Translator] Make sure a null locale is handled properly
  deal with errors being thrown on PHP 8
  loadRoutes shoud receive RoutingPhpFileLoader
  [Cache] Allow cache tags to be objects implementing __toString()
  [HttpKernel] Do not override max_redirects option in HttpClientKernel
  Log notice when no entry point is configured
  remove superfluous cast
  [HttpClient] Support for CURLOPT_LOCALPORT.
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
  Fixed exception message formatting
  [FrameworkBundle] Fix error in xsd which prevent to register more than one metadata
  ...
2020-09-20 09:20:17 +02:00
HypeMC
9c34980869 Auto-register kernel as an extension 2020-09-20 02:47:54 +02:00
Christian Flothmann
2a76d51da5 minor #38238 [Validator] stop using the deprecated at() PHPUnit matcher (xabbuh)
This PR was merged into the 5.1 branch.

Discussion
----------

[Validator] stop using the deprecated at() PHPUnit matcher

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

0d0f92b7c6 stop using the deprecated at() PHPUnit matcher
2020-09-18 20:37:45 +02:00
Christian Flothmann
0d0f92b7c6 stop using the deprecated at() PHPUnit matcher 2020-09-18 20:24:55 +02:00
Christian Flothmann
f88caa81da minor #38237 [HttpClient] fix lowest allowed version of the HTTP client contracts (xabbuh)
This PR was merged into the 5.1 branch.

Discussion
----------

[HttpClient] fix lowest allowed version of the HTTP client contracts

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

fixes `deps=low` builds for the HttpClient component by making sure that the installed version of the HTTP client contracts package contains the changes from #37831

Commits
-------

edca581889 fix lowest allowed version of the HTTP client contracts
2020-09-18 19:14:44 +02:00
Christian Flothmann
edca581889 fix lowest allowed version of the HTTP client contracts 2020-09-18 18:31:55 +02:00
Alexander M. Turek
34dbf01618 [VarDumper] Support for ReflectionAttribute. 2020-09-18 18:10:35 +02:00
Christian Flothmann
fb7ee79dba fix lowest allowed version for the PHPUnit bridge 2020-09-18 18:07:05 +02:00
Christian Flothmann
9610daf1bc fix merge 2020-09-18 17:39:40 +02:00
Christian Flothmann
4ee591bec6 Merge branch '4.4' into 5.1
* 4.4:
  fix merge
  drop logger mock in favor of using the BufferingLogger
  catch ValueError thrown on PHP 8
  [Yaml Parser] Fix edge cases when parsing multiple documents
  fix parsing comments not prefixed by a space
  [Translator] Make sure a null locale is handled properly
  deal with errors being thrown on PHP 8
  [Cache] Allow cache tags to be objects implementing __toString()
  [HttpKernel] Do not override max_redirects option in HttpClientKernel
  remove superfluous cast
  [HttpClient] Support for CURLOPT_LOCALPORT.
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
  Fixed exception message formatting
  [FrameworkBundle] Fix error in xsd which prevent to register more than one metadata
  [Console] work around disabled putenv()
  [PhpUnitBridge] Fix error with ReflectionClass
  [HttpClient][HttpClientTrait] don't calculate alternatives if option is auth_ntlm
  Change 'cache_key' to AbstractRendererEngine::CACHE_KEY_VAR
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
2020-09-18 16:27:32 +02:00
Christian Flothmann
50f37f0ccc fix merge 2020-09-18 16:07:46 +02:00
Christian Flothmann
d1353c0602 Merge branch '3.4' into 4.4
* 3.4:
  drop logger mock in favor of using the BufferingLogger
  [Yaml Parser] Fix edge cases when parsing multiple documents
  fix parsing comments not prefixed by a space
2020-09-18 15:54:02 +02:00