Commit Graph

48475 Commits

Author SHA1 Message Date
Haralan Dobrev
36a57cc7c2 [PhpUnitBridge] Deprecate @expectedDeprecation annotation 2020-03-16 07:05:14 +01:00
Fabien Potencier
d5c4ba980b feature #35924 [HttpClient] make HttpClient::create() return an AmpHttpClient when amphp/http-client is found but curl is not or too old (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] make `HttpClient::create()` return an `AmpHttpClient` when `amphp/http-client` is found but curl is not or too old

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

Follows #35115

Let's use `amphp/http-client` by default, after `curl` and before `fopen()`.

Commits
-------

7991685e04 [HttpClient] made `HttpClient::create()` return an `AmpHttpClient` when `amphp/http-client` is found but curl is not or too old
2020-03-16 07:03:39 +01:00
Fabien Potencier
7a4be744fd minor #36021 [Validator] Remove commas in translations (przemyslaw-bogusz)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Validator] Remove commas in translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| License       | MIT

These translations were originally modified in #21335.

Commits
-------

5688f97bad [Validator] Remove commas in translations
2020-03-16 06:59:27 +01:00
Przemysław Bogusz
5688f97bad [Validator] Remove commas in translations 2020-03-16 06:59:20 +01:00
Jules Pietri
ed2c312609
[Form] Added a "choice_filter" option to ChoiceType 2020-03-15 16:49:24 +01:00
Fabien Potencier
df1caaeaa6 minor #36087 Add missing dots at the end of exception messages (fabpot)
This PR was merged into the 5.1-dev branch.

Discussion
----------

Add missing dots at the end of exception messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

c46d7027e5 Add missing dots at the end of exception messages
2020-03-15 16:07:38 +01:00
Fabien Potencier
c46d7027e5 Add missing dots at the end of exception messages 2020-03-15 15:54:58 +01:00
Fabien Potencier
d6dd06ba89 Merge branch '5.0'
* 5.0:
  Add missing dots at the end of exception messages
  Add missing dots at the end of exception messages
  [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict)
  Fix bad merge
  Add missing dots at the end of exception messages
2020-03-15 15:51:35 +01:00
Nicolas Grekas
f37d901426 minor #36086 [UID] remove unused property (Tobion)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[UID] remove unused property

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

leftover from https://github.com/symfony/symfony/pull/36074

Commits
-------

901e62a98f remove unused uuid property
2020-03-15 15:48:33 +01:00
Fabien Potencier
040bf90355 minor #36085 Add missing dots at the end of exception messages (fabpot)
This PR was merged into the 5.0 branch.

Discussion
----------

Add missing dots at the end of exception messages

| Q             | A
| ------------- | ---
| Branch?       | 5.0
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

81cf96749b Add missing dots at the end of exception messages
2020-03-15 15:46:24 +01:00
Tobias Schultze
901e62a98f remove unused uuid property
leftover from https://github.com/symfony/symfony/pull/36074
2020-03-15 15:41:40 +01:00
Fabien Potencier
81cf96749b Add missing dots at the end of exception messages 2020-03-15 15:37:05 +01:00
Fabien Potencier
20a19884ac Merge branch '4.4' into 5.0
* 4.4:
  Add missing dots at the end of exception messages
  [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict)
  Fix bad merge
  Add missing dots at the end of exception messages
2020-03-15 15:33:06 +01:00
Fabien Potencier
3543bf67b6 minor #36081 Add missing dots at the end of exception messages (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

Add missing dots at the end of exception messages

| 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       | n/a <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

6dad402e97 Add missing dots at the end of exception messages
2020-03-15 15:29:03 +01:00
Fabien Potencier
6dad402e97 Add missing dots at the end of exception messages 2020-03-15 15:17:26 +01:00
Fabien Potencier
cc8d23a8ce bug #36083 [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict) (wouterj)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict)

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

After the merge of #36020 , the `addViewTransformer()` was moved to the top of the statement. This is wrong, as the `$format` variable is changed when a `reference_date` is set (see line 77). This broke Symfony's testsuite :)

Commits
-------

18f5b17249 [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict)
2020-03-15 15:10:17 +01:00
Wouter de Jong
18f5b17249 [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict) 2020-03-15 15:10:11 +01:00
Fabien Potencier
bfca6b985e bug #36082 [Framework-Bundle] fixed kernel.secret not being overridden when loaded from extension using MicroKernelTrait (jrushlow)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Framework-Bundle] fixed kernel.secret not being overridden when loaded from extension using MicroKernelTrait

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

Previously, when extending `Kernel::class` and using the `MicroKernelTrait::class` setting the `secret` like
```
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader)
    {
        $container->loadFromExtension('framework', [ 'secret' => 'foo',]);
```
would not replace the `kernel.secret` parameter set by `$container->setParameter('kernel.secret', '%env(APP_SECRET)%');`  in the `MicroKernelTrait`.

Initiating a service with a secret argument without a `APP_ENV` value set in `.env` would throw:
`Symfony\Component\DependencyInjection\Exception\EnvNotFoundException : Environment variable not found: "APP_SECRET".`

This PR allows the `kernel.secret`  set in the `MicroKernelTrait::registerContainerConfiguration()` to be overridden in a class extending `Kernel` while using the trait.

Thanks @nicolas-grekas for the help on this one.

Commits
-------

76d398851f fixed kernel.secret not being overridden when loaded from extension
2020-03-15 15:04:16 +01:00
Fabien Potencier
691bd88dda feature #36072 [SecurityBundle] Added XSD for the extension configuration (HeahDude)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[SecurityBundle] Added XSD for the extension configuration

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

Commits
-------

66ac3f7f5d [SecurityBundle] Added XSD for the extension configuration
2020-03-15 14:55:40 +01:00
Fabien Potencier
31fe1ef1c8 Fix bad merge 2020-03-15 14:51:58 +01:00
Jules Pietri
a71023ba65
[PropertyAccess] Improved errors when reading uninitialized properties 2020-03-15 14:27:18 +01:00
Jesse Rushlow
76d398851f
fixed kernel.secret not being overridden when loaded from extension 2020-03-15 07:30:16 -04:00
Jules Pietri
66ac3f7f5d
[SecurityBundle] Added XSD for the extension configuration 2020-03-15 11:26:52 +01:00
Fabien Potencier
14f2d22158 Merge branch '3.4' into 4.4
* 3.4:
  Add missing dots at the end of exception messages
2020-03-15 11:05:03 +01:00
Fabien Potencier
13ea421e1c minor #36080 Add missing dots at the end of exception messages (fabpot)
This PR was merged into the 3.4 branch.

Discussion
----------

Add missing dots at the end of exception messages

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

bb8a66e3fc Add missing dots at the end of exception messages
2020-03-15 10:57:52 +01:00
Fabien Potencier
66a46f0fab Merge branch '5.0'
* 5.0:
  [HttpClient] Fix typo
  [Mime] Fix boundary header
  ignore microseconds submitted by Edge
2020-03-15 10:56:56 +01:00
Fabien Potencier
c9cdf93d5f Merge branch '4.4' into 5.0
* 4.4:
  [HttpClient] Fix typo
  [Mime] Fix boundary header
  ignore microseconds submitted by Edge
2020-03-15 10:56:47 +01:00
Fabien Potencier
8848de5a6f Merge branch '3.4' into 4.4
* 3.4:
  ignore microseconds submitted by Edge
2020-03-15 10:56:32 +01:00
Fabien Potencier
bb8a66e3fc Add missing dots at the end of exception messages 2020-03-15 10:38:08 +01:00
Fabien Potencier
ade47ddbe1 feature #36074 [Uid] add AbstractUid and interop with base-58/32/RFC4122 encodings (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] add AbstractUid and interop with base-58/32/RFC4122 encodings

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

This PR provides a base `AbstractUid` class that is shared by `Uuid` and `Ulid`.

It adds new methods that provide interoperability between all types of UIDs but also between different encodings of UIDs:
- `toBase58()` using the [bitcoin alphabet](https://en.wikipedia.org/wiki/Base58) - that's 22 chars aka "short-ids" - case sensitive
- `toBase32()` using [Crockford's alphabet](https://www.crockford.com/base32.html) - 26 chars ids - case insensitive
- `toRfc4122()` to represent as a UUID-formatted string - 36 chars

This adds to `toBinary()` and to `fromString()`, the latter being able to cope with any of the 4 representations to create any kind of UIDs.

Commits
-------

d8479adc49 [Uid] add AbstractUid and interop with base-58/32/RFC4122 encodings
2020-03-15 10:20:07 +01:00
Nicolas Grekas
d8479adc49 [Uid] add AbstractUid and interop with base-58/32/RFC4122 encodings 2020-03-15 10:01:22 +01:00
Fabien Potencier
1d955cc1f6 minor #36075 [UID] Rename NullUuid to NilUuid (ro0NL)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[UID] Rename NullUuid to NilUuid

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->
<!--
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.
-->
As per https://tools.ietf.org/html/rfc4122#section-4.1.7

Commits
-------

cbb6d233a1 [UID] Rename NullUuid to NilUuid
2020-03-15 09:07:08 +01:00
Roland Franssen
cbb6d233a1 [UID] Rename NullUuid to NilUuid 2020-03-15 09:07:00 +01:00
Fabien Potencier
68dec1a068 minor #36077 [Uid] Add support for UUIDv6 (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] Add support for UUIDv6

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

See https://github.com/uuid6/uuid6-ietf-draft/blob/master/draft-peabody-dispatch-new-uuid-format-00.txt

A v6 UUID is a lexicographically-sortable-v1.
This makes it db-index friendly (same as ULIDs).

For reference:
- v1 has no benefits over v6 except being in the current official RFC
- v6 is order-friendly and leaks time data + stable entropy (potentially bound to a MAC address or equivalent)
- ULID is also order-friendly and leaks time data, with high entropy (crypto random source)
- v4 is pure crypto random source, aka no order and no leak of anything.

Commits
-------

b705ee1b4b [Uid] Add support for UUIDv6
2020-03-15 09:05:32 +01:00
Fabien Potencier
00aab67e6b minor #36078 [Uid] work around slow generation of v4 UUIDs (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] work around slow generation of v4 UUIDs

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

This is more than 4 times faster than `uuid_create()` for v4.
As described in https://jolicode.com/blog/uuid-generation-in-php

Commits
-------

a0e8d24144 [Uid] work around slow generation of v4 UUIDs
2020-03-15 09:03:52 +01:00
Nicolas Grekas
a0e8d24144 [Uid] work around slow generation of v4 UUIDs 2020-03-15 01:46:42 +01:00
Nicolas Grekas
b705ee1b4b [Uid] Add support for UUIDv6 2020-03-15 01:13:53 +01:00
Nicolas Grekas
9fa7ee1379 minor #36076 [HttpClient] Fix typo (matthieumota)
This PR was submitted for the master branch but it was merged into the 4.4 branch instead.

Discussion
----------

[HttpClient] Fix typo

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

A little typo in docblock.

Commits
-------

186ee831d7 [HttpClient] Fix typo
2020-03-14 19:55:30 +01:00
Matthieu Mota
186ee831d7 [HttpClient] Fix typo 2020-03-14 19:54:59 +01:00
Nicolas Grekas
7dc6da6c26 feature #36066 [Uid] use one class per type of UUID (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] use one class per type of UUID

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

(embeds #36064 for now)

Would it make sense to have one class per type of UUID?
This aligns the type system and UUID types, so that one could type hint e.g. `UuidV4 $uuid`.

This PR does so. `UuidV1`/2/3/4 and `NullUuid` all extend the base `Uuid` class, which provides common methods and the factories needed to create each king of UUID.

This means we don't need the `getType()` nor the `isNull()` methods since they can be replaced by instanceof checks.

As expected,  `getTime()` and `getMac()` then now exist only on the `UuidV1` class - no need for any version check nor any `LogicException` anymore.

Each type is guaranteed to contain a UUID that matches its class' type. The base `Uuid` class is used for the "no type" type.

Commits
-------

62f6ac4d36 [Uid] use one class per type of UUID
2020-03-14 14:55:35 +01:00
Nicolas Grekas
62f6ac4d36 [Uid] use one class per type of UUID 2020-03-14 14:51:56 +01:00
Nicolas Grekas
fa5d63685d minor #36070 [Uid] improve base convertion logic (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] improve base convertion logic

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

The new logic is at least twice as fast as the current algo.
It's also way more common and generic.

Commits
-------

0e05c6de80 [Uid] improve base convertion logic
2020-03-14 13:54:56 +01:00
Nicolas Grekas
0e05c6de80 [Uid] improve base convertion logic 2020-03-14 13:53:24 +01:00
Fabien Potencier
f166fe5a16 bug #36026 [Mime] Fix boundary header (guillbdx)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Mime] Fix boundary header

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #35443 (fixes the second problem described in this ticket)
| License       | MIT

The boundary value of Content-Type header was enclosed in quotes, cause of the "=" symbol.

Commits
-------

453078ff37 [Mime] Fix boundary header
2020-03-14 09:10:33 +01:00
Guillaume Pédelagrabe
453078ff37 [Mime] Fix boundary header 2020-03-14 09:10:28 +01:00
Fabien Potencier
42c76d7683 feature #36042 [Uid] add support for Ulid (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] add support for Ulid

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

ULIDs are useful alternatives to UUIDs.

From https://github.com/ulid/spec:

UUID can be suboptimal for many use-cases because:

- It isn't the most character efficient way of encoding 128 bits of randomness
- UUID v1/v2 is impractical in many environments, as it requires access to a unique, stable MAC address
- UUID v3/v5 requires a unique seed and produces randomly distributed IDs, which can cause fragmentation in many data structures
- UUID v4 provides no other information than randomness which can cause fragmentation in many data structures

Instead, herein is proposed ULID:

- 128-bit compatibility with UUID
- 1.21e+24 unique ULIDs per millisecond
- Lexicographically sortable!
- Canonically encoded as a 26 character string, as opposed to the 36 character UUID
- Uses Crockford's base32 for better efficiency and readability (5 bits per character)
- Case insensitive
- No special characters (URL safe)
- Monotonic sort order (correctly detects and handles the same millisecond)

Commits
-------

59044f914b [Uid] add support for Ulid
2020-03-14 09:05:51 +01:00
Fabien Potencier
aed93cdada minor #36064 [Uid] remove Uuid::getVariant() (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] remove Uuid::getVariant()

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

Let's simplify the API. One less concept to grasp.
I think there are no use cases for variants in modern tech, check:
https://en.wikipedia.org/wiki/Universally_unique_identifier#Variants

Commits
-------

49efe9a5a9 [Uid] remove Uuid::getVariant()
2020-03-14 08:58:18 +01:00
Nicolas Grekas
048d09213e [DI] skip untyped properties in AutowireRequiredPropertiesPass 2020-03-13 23:17:44 +01:00
Nicolas Grekas
49efe9a5a9 [Uid] remove Uuid::getVariant() 2020-03-13 20:12:33 +01:00
Nicolas Grekas
a562ba23df bug #36020 [Form] ignore microseconds submitted by Edge (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] ignore microseconds submitted by Edge

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

Commits
-------

20971dff82 ignore microseconds submitted by Edge
2020-03-13 15:28:57 +01:00