Commit Graph

38958 Commits

Author SHA1 Message Date
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
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
6dad402e97 Add missing dots at the end of exception messages 2020-03-15 15:17:26 +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
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
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
Nicolas Grekas
d8479adc49 [Uid] add AbstractUid and interop with base-58/32/RFC4122 encodings 2020-03-15 10:01:22 +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
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
Matthieu Mota
186ee831d7 [HttpClient] Fix typo 2020-03-14 19:54:59 +01:00
Nicolas Grekas
62f6ac4d36 [Uid] use one class per type of UUID 2020-03-14 14:51: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
Nicolas Grekas
49efe9a5a9 [Uid] remove Uuid::getVariant() 2020-03-13 20:12:33 +01:00
Nicolas Grekas
59044f914b [Uid] add support for Ulid 2020-03-13 15:21:35 +01:00
Nicolas Grekas
cc73b1eafa minor #36058 [Uid] make Uuid::equals method accept any types of argument for more flexibility (hhamon)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] make `Uuid::equals` method accept any types of argument for more flexibility

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

I suggest to weaken the `Uuid:equals` method argument type to accept any types of value to compare against. This makes one able to compare the `Uuid` instance with any values.

Commits
-------

46721c19f9 [Uid] make `Uuid::equals()` accept any types of argument for more flexibility
2020-03-13 15:20:10 +01:00
Hugo Hamon
46721c19f9 [Uid] make Uuid::equals() accept any types of argument for more flexibility 2020-03-13 15:19:40 +01:00
Nicolas Grekas
08bb79b174 minor #36053 [Uid] make Uuid::getTime() return subseconds info (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Uid] make Uuid::getTime() return subseconds info

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

A UUID timestamp contains 60bit of data, but a timestamp barely contains 31bit.
Let's return a float instead.

Commits
-------

5a170b80ed [Uid] make Uuid::getTime() return subseconds info
2020-03-13 14:59:23 +01:00
Christian Flothmann
20971dff82 ignore microseconds submitted by Edge 2020-03-13 14:04:07 +01:00
Nicolas Grekas
d028a503e6 feature #35995 [FrameworkBundle] add --deprecations on debug:container command (Simperfit, noemi-salaun)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[FrameworkBundle] add --deprecations on debug:container command

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

_I apologize in advance, I am not fluent in English_

Continuity of @Simperfit work from his PR https://github.com/symfony/symfony/pull/32584

I added support for XML, JSON and markdown formats as well as unit tests for all formats.

## XML format

```xml
<?xml version="1.0" encoding="UTF-8"?>
<deprecations remainingCount="5">
  <deprecation count="3">
    <message>Some deprecation message.</message>
    <file>/path/to/some/file.php</file>
    <line>39</line>
  </deprecation>
  <deprecation count="2">
    <message>An other deprecation message.</message>
    <file>/path/to/an/other/file.php</file>
    <line>25</line>
  </deprecation>
</deprecations>
```

## JSON format

```json
{
  "remainingCount": 5,
  "deprecations": [
    {
      "message": "Some deprecation message.",
      "file": "\/path\/to\/some\/file.php",
      "line": 39,
      "count": 3
    },
    {
      "message": "An other deprecation message.",
      "file": "\/path\/to\/an\/other\/file.php",
      "line": 25,
      "count": 2
    }
  ]
}
```

## Markdown format

## Remaining deprecations (5)

- 3x: "Some deprecation message." in /path/to/some/file.php:39
- 2x: "An other deprecation message." in /path/to/an/other/file.php:25

I added a new commit on top of @Simperfit 's one, but I don't know how you would like to have the git history writed.

Commits
-------

ee6391eb29 [FrameworkBundle] add all formats support for debug:container --deprecations command
161f659146 [FrameworkBundle] add --deprecations on debug:container command
2020-03-13 13:34:29 +01:00
Noémi Salaün
ee6391eb29 [FrameworkBundle] add all formats support for debug:container --deprecations command 2020-03-13 13:34:21 +01:00
Nicolas Grekas
66e53fb1b5 [String] fix test 2020-03-13 12:22:22 +01:00
Nicolas Grekas
53b0f63bc3 [String] leverage Stringable from PHP 8 2020-03-13 11:54:27 +01:00
Nicolas Grekas
5428fef8cb Merge branch '5.0'
* 5.0:
  [Security/Core] fix merge
  fix typo
  [Validator] clarify stringable type annotations
  [Security/Core] fix some annotations
2020-03-13 11:40:02 +01:00
Nicolas Grekas
2f9438677c Merge branch '4.4' into 5.0
* 4.4:
  [Security/Core] fix merge
  fix typo
  [Validator] clarify stringable type annotations
  [Security/Core] fix some annotations
2020-03-13 11:39:51 +01:00
Nicolas Grekas
228b59da56 [Security/Core] fix merge 2020-03-13 11:38:56 +01:00
Nicolas Grekas
162758317c Merge branch '3.4' into 4.4
* 3.4:
  fix typo
  [Validator] clarify stringable type annotations
  [Security/Core] fix some annotations
2020-03-13 11:34:17 +01:00
Nicolas Grekas
523f5c04ab fix typo 2020-03-13 11:30:33 +01:00
Nicolas Grekas
0ee97f23a6 [Validator] clarify stringable type annotations 2020-03-13 11:25:23 +01:00
Nicolas Grekas
8e873d0b5b [Security/Core] fix some annotations 2020-03-13 11:19:21 +01:00
Nicolas Grekas
5a170b80ed [Uid] make Uuid::getTime() return subseconds info 2020-03-13 09:25:19 +01:00
Nicolas Grekas
14c95a9d8c Merge branch '5.0'
* 5.0:
  [Config] fix test
  [HttpClient] disable debug log with curl 7.64.0
  [Intl][3.4] Bump ICU 66.1
  fix import from config file using type: glob
  [DoctrineBridge][DoctrineExtractor] Fix wrong guessed type for "json" type
2020-03-13 09:05:42 +01:00
Nicolas Grekas
381c2e8f62 Merge branch '4.4' into 5.0
* 4.4:
  [Config] fix test
  [HttpClient] disable debug log with curl 7.64.0
  [Intl][3.4] Bump ICU 66.1
  fix import from config file using type: glob
  [DoctrineBridge][DoctrineExtractor] Fix wrong guessed type for "json" type
2020-03-13 09:04:52 +01:00
Nicolas Grekas
1893ef9a0f bug #36038 [HttpClient] disable debug log with curl 7.64.0 (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] disable debug log with curl 7.64.0

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

Works around https://curl.haxx.se/mail/archive-2019-02/0013.html

Commits
-------

d4cde31940 [HttpClient] disable debug log with curl 7.64.0
2020-03-13 09:02:30 +01:00
Nicolas Grekas
f9b2714efb Merge branch '3.4' into 4.4
* 3.4:
  [Config] fix test
  [Intl][3.4] Bump ICU 66.1
  fix import from config file using type: glob
  [DoctrineBridge][DoctrineExtractor] Fix wrong guessed type for "json" type
2020-03-13 09:01:26 +01:00
Nicolas Grekas
148b13cdf0 bug #36041 fix import from config file using type: glob (Tobion)
This PR was merged into the 3.4 branch.

Discussion
----------

fix import from config file using type: glob

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| 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        |

If you try to import configs with glob using
```
imports:
    - { resource: '../dev/*.{php,xml,yaml,yml}', type: 'glob' }
```
it didn't work because the FileLoader resolves the glob pattern but forwards the glob type. This meant the resolver then choses the GlobFilerLoader again for each already resolved file which does not find the files. So in the end the glob was resolved but the files never imported.
The workaround is to remove the `type: glob` from the import above. But the real fix should be to not forward the glob type when it's already resolved.

Commits
-------

6b70511bc6 fix import from config file using type: glob
2020-03-13 08:58:23 +01:00