Commit Graph

7217 Commits

Author SHA1 Message Date
Nicolas Grekas
f532322fe3 bug #19950 [FrameworkBundle] Parse source link maps using json_decode() instead of parse_str() (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] Parse source link maps using json_decode() instead of parse_str()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | updated code exists only on master
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19807
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/6944

Because `parse_str()` turns some characters into underscores in keys (e.g. `.`).

Commits
-------

9b174fb [FrameworkBundle] Parse source link maps using json_decode() instead of parse_str()
2016-09-16 15:58:28 +02:00
Nicolas Grekas
9b174fb0c1 [FrameworkBundle] Parse source link maps using json_decode() instead of parse_str() 2016-09-16 15:37:46 +02:00
Fabien Potencier
835176c932 Merge branch '3.1'
* 3.1:
  added a comment about a workaround
  [Finder] no PHP warning on empty directory iteration
  [HttpKernel] Fixed the nullable support for php 7.1 and below
  fixed CS
  [Form] Fix typo in doc comment
  Fix version constraint
  [Config] Handle open_basedir restrictions in FileLocator
  Fixed bad merge
  [DoctrineBridge][PropertyInfo] Treat Doctrine decimal type as string
  [bugfix] [Console] Set `Input::$interactive` to `false` when command is executed with `--quiet` as verbosity level
  Use JSON_UNESCAPED_SLASHES for lint commands output
  Fixed collapsed ChoiceType options attributes
  [FrameworkBundle] Remove cache clearer default value in config
  Consider the umask setting when dumping a file.
  Fixed the nullable support for php 7.1 and below
  Make ReflectionExtractor compatible with ReflectionType changes in PHP 7.1
2016-09-14 15:49:28 -07:00
Fabien Potencier
47657e55d2 feature #19197 [Serializer][FrameworkBundle] Add a CSV encoder (dunglas)
This PR was squashed before being merged into the 3.2-dev branch (closes #19197).

Discussion
----------

[Serializer][FrameworkBundle] Add a CSV encoder

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | todo

Usage:

```php
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\CsvEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;

$serializer = new Serializer(array(new ObjectNormalizer()), array(new CsvEncoder()));
// or $serializer = $container->get('serializer'); when using the full stack framework
$serializer->encode($something, 'csv');
$serializer->decode(<<<'CSV'
id,name
1,Kévin
CSV
, 'csv');
```

CSV files must contain a header line with property names as keys.

ping @clementtalleu @Simperfit @gorghoa

Commits
-------

e71f5be [Serializer][FrameworkBundle] Add a CSV encoder
2016-09-14 15:14:31 -07:00
Kévin Dunglas
e71f5bea96 [Serializer][FrameworkBundle] Add a CSV encoder 2016-09-14 15:10:23 -07:00
Fabien Potencier
d6d6a47fcf feature #19326 [Serializer][FrameworkBundle] Add a YAML encoder (dunglas)
This PR was squashed before being merged into the 3.2-dev branch (closes #19326).

Discussion
----------

[Serializer][FrameworkBundle] Add a YAML encoder

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | todo

Add YAML support to the Serializer.

Commits
-------

9366a7d [Serializer][FrameworkBundle] Add a YAML encoder
2016-09-14 14:57:14 -07:00
Kévin Dunglas
9366a7dc77 [Serializer][FrameworkBundle] Add a YAML encoder 2016-09-14 14:57:11 -07:00
Fabien Potencier
68737ebbf3 feature #19485 [FrameworkBundle] Introduce a cache warmer for Validator based on PhpArrayAdapter (tgalopin)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] Introduce a cache warmer for Validator based on PhpArrayAdapter

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | -
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Following the cache warmer for annotations PR (https://github.com/symfony/symfony/pull/18533), this PR introduces a cache warmer for YAML and XML Validator configuration.

Based on the PhpArrayAdapter, it uses the naming conventions (`Resources/config/validation`) to find the files and compile them into a single PHP file stored in the cache directory. This file uses shared memory on PHP 7.

The benefit of this PR are the same than the ones of the annotations PR:

- validation configuration can be warmed up offline
- on PHP 7, there is no need for user extension to get maximum performances (ie. if you use this PR and the other one, you probably won't need to enable APCu to have great performances)
- on PHP 7 again, we are not sensitive to APCu memory fragmentation
- last but not least, global performance is slightly better (I get 30us per class gain in Blackfire)

This PR also deprecates the framework.validator.cache key in favor of the cache pool introduced in https://github.com/symfony/symfony/pull/18544.

Commits
-------

6bdaf0b [FrameworkBundle] Introduce a cache warmer for Validator based on PhpArrayAdapter
2016-09-14 14:10:29 -07:00
Fabien Potencier
3416f2128d feature #19790 [FrameworkBundle] add support for prioritizing form type extension tags (dmaicher)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] add support for prioritizing form type extension tags

| Q             | A
| ------------- | ---
| Branch?       | "master"
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19735
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/6958

This PR proposes to add support for `priority` on `form.type_extension` dependecyinjection tags to enable sorting/prioritizing form type extensions.

Issue was mentioned here: https://github.com/symfony/symfony/issues/19735

Commits
-------

a3db5f0 [FrameworkBundle] add support for prioritizing form type extension tags
2016-09-14 14:07:36 -07:00
Fabien Potencier
46dd1d5719 feature #19507 [FrameworkBundle] Introduce a cache warmer for Serializer based on PhpArrayAdapter (tgalopin)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] Introduce a cache warmer for Serializer based on PhpArrayAdapter

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Following the cache warmer for annotations (#18533) and for the validator (#19485), this PR introduces a cache warmer for the Serializer YAML and XML metadata configuration (mainly groups).

Based on the PhpArrayAdapter, it uses the naming conventions (Resources/config/serialization) to find the files and compile them into a single PHP file stored in the cache directory. This file uses shared memory on PHP 7.

The benefit of this PR are the same than the ones of the previous PR:

- serialization metadata cache can be warmed up offline
- on PHP 7, there is no need for user extension to get maximum performances (ie. if you use this PR and the other one, you probably won't need to enable APCu to have great performances)
- on PHP 7 again, we are not sensitive to APCu memory fragmentation
last but not least, global performance is slightly better (I get 30us per class gain in Blackfire)

As previous work on the Serializer cache system introduced issues (see 96e418a14f), it would be interesting to pay careful attention to the backward compatibility during the review (ping @Ener-Getick).

Commits
-------

810f469 [FrameworkBundle] Introduce a cache warmer for Serializer based on PhpArrayAdapter
2016-09-14 13:50:36 -07:00
Fabien Potencier
0d5dbb75ee Merge branch '2.8' into 3.1
* 2.8:
  [Form] Fix typo in doc comment
  [Config] Handle open_basedir restrictions in FileLocator
  [bugfix] [Console] Set `Input::$interactive` to `false` when command is executed with `--quiet` as verbosity level
  Use JSON_UNESCAPED_SLASHES for lint commands output
  Fixed collapsed ChoiceType options attributes
  Fixed the nullable support for php 7.1 and below
2016-09-14 13:33:02 -07:00
Fabien Potencier
be3a827ef1 Merge branch '2.7' into 2.8
* 2.7:
  [Form] Fix typo in doc comment
  [Config] Handle open_basedir restrictions in FileLocator
  [bugfix] [Console] Set `Input::$interactive` to `false` when command is executed with `--quiet` as verbosity level
  Use JSON_UNESCAPED_SLASHES for lint commands output
  Fixed collapsed ChoiceType options attributes
  Fixed the nullable support for php 7.1 and below
2016-09-14 13:31:12 -07:00
Fabien Potencier
059b4363d4 feature #19807 [FrameworkBundle] Add %debug.file_link_format% with remapping for IDE links (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] Add %debug.file_link_format% with remapping for IDE links

| Q             | A
| ------------- | ---
| Branch?       | master
| New feature?  | yes
| Tests pass?   | yes
| Fixed tickets | #14340
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/6944

`templating.helper.code.file_link_format` is a parameter that requires templating to be defined, but holds a concept that is used beyond templating borders.
Let's make it a general parameter that can be injected easily when required.

Commits
-------

1c4ca8c [FrameworkBundle] Add %debug.file_link_format% with remapping for IDE links
2016-09-14 12:22:10 -07:00
Fabien Potencier
277c7fa6a8 feature #19891 [FrameworkBundle] Add cache:pool:clear command (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] Add cache:pool:clear command

| Q             | A
| ------------- | ---
| Branch?       | master
| New feature?  | yes
| Tests pass?   | yes
| License       | MIT

Useful when deploying apps to get better control of cache pool clearing.

Commits
-------

37c5b18 [FrameworkBundle] Add cache:pool:clear command
2016-09-14 12:20:05 -07:00
Fabien Potencier
f9ccdd3db6 feature #19900 [FrameworkBundle] Add CachePoolClearerPass for weak cache pool refs in cache clearers (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] Add CachePoolClearerPass for weak cache pool refs in cache clearers

| Q             | A
| ------------- | ---
| Branch?       | master
| New feature?  | yes
| Tests pass?   | yes
| License       | MIT

On 3.1, when a cache pool is private and not injected anywhere, it is still added to its clearer service.
The `CachePoolClearerPass` fixes this by referencing pools in clearers only after the removing passes.

Commits
-------

c4b9f7d [FrameworkBundle] Add CachePoolClearerPass for weak cache pool refs in cache clearers
2016-09-14 12:17:33 -07:00
Nicolas Grekas
1c4ca8c9a4 [FrameworkBundle] Add %debug.file_link_format% with remapping for IDE links 2016-09-14 21:12:42 +02:00
Nicolas Grekas
37c5b183e5 [FrameworkBundle] Add cache:pool:clear command 2016-09-14 11:09:26 +02:00
Fabien Potencier
26e2846c8a bug #19904 [Form] Fixed collapsed ChoiceType options attributes (HeahDude)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Fixed collapsed ChoiceType options attributes

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19898
| License       | MIT
| Doc PR        | ~

Commits
-------

7806e2a Fixed collapsed ChoiceType options attributes
2016-09-13 17:22:22 -07:00
Fabien Potencier
5129c4cf7e feature #19843 [Security] Allow run-time configuration of hash algo (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[Security] Allow run-time configuration of hash algo

| Q             | A
| ------------- | ---
| Branch?       | master
| New feature?  | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Required if we want run-time config with env vars. See #19681

Commits
-------

7903a46 [Security] Allow run-time configuration of hash algo
2016-09-13 17:06:01 -07:00
Fabien Potencier
c2b660dc60 bug #19893 [FrameworkBundle] Remove cache clearer default value in config (nicolas-grekas)
This PR was merged into the 3.1 branch.

Discussion
----------

[FrameworkBundle] Remove cache clearer default value in config

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | yes
| Tests pass?   | yes
| License       | MIT

`cache.default_clearer` is already the default behavior (tested), but duplicating this in the configuration prevents inheriting the `clearer` setting when configuring child pools.

Commits
-------

193542f [FrameworkBundle] Remove cache clearer default value in config
2016-09-13 17:01:35 -07:00
Fabien Potencier
946b96b70d bug #19922 [Yaml][TwigBridge] Use JSON_UNESCAPED_SLASHES for lint commands output (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[Yaml][TwigBridge] Use JSON_UNESCAPED_SLASHES for lint commands output

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Slashes are escaped when sing the `lint:twig` and `lint:yaml` commands with the `format` option set to `json`, giving such results:

```json
[
    {
        "file": "yaml\/wrong\/1.yml",
        "valid": false,
        "message": "Unable to parse at line 1 (near \";:cc`\")."
    }
]
```

That's not convenient as file paths may be reused (e.g. copy-pasted).
Results stay fine as error messages are already escaped:

```json
[
    {
        "file": "yaml/wrong/1.yml",
        "valid": false,
        "message": "Unable to parse at line 1 (near \";:cc`\")."
    }
]
```

Commits
-------

0427594 Use JSON_UNESCAPED_SLASHES for lint commands output
2016-09-13 16:35:36 -07:00
Jakub Zalas
d093c406ca [FrameworkBundle] Fix TranslationUpdateCommand tests after a merge 2016-09-13 11:19:55 +01:00
Robin Chalas
04275945ef
Use JSON_UNESCAPED_SLASHES for lint commands output 2016-09-12 23:15:58 +02:00
Nicolas Grekas
f5c1b1c077 Merge branch '3.1'
* 3.1:
  [travis/appveyor] Wire simple-phpunit
  [Console] fixed PHP7 Errors are now handled and converted to Exceptions
  Fix #19721
  Fix translation:update command count
  bumped Symfony version to 2.8.12
  updated VERSION for 2.8.11
  updated CHANGELOG for 2.8.11
  bumped Symfony version to 2.7.19
  updated VERSION for 2.7.18
  update CONTRIBUTORS for 2.7.18
  updated CHANGELOG for 2.7.18
  [Security] Optimize RoleHierarchy's buildRoleMap method
  [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page)
  [Security] Added note inside phpdoc.
  Minor cleanups and improvements
  [form] lazy trans `post_max_size_message`.
  [DI] Fix setting synthetic services on ContainerBuilder
  [ClassLoader] Fix ClassCollectionLoader inlining with declare(strict_types=1)
2016-09-12 21:03:45 +02:00
Fabien Potencier
fad40286ee Merge branch '2.8' into 3.1
* 2.8:
  [travis/appveyor] Wire simple-phpunit
  [Console] fixed PHP7 Errors are now handled and converted to Exceptions
  Fix #19721
  Fix translation:update command count
  bumped Symfony version to 2.8.12
  updated VERSION for 2.8.11
  updated CHANGELOG for 2.8.11
  bumped Symfony version to 2.7.19
  updated VERSION for 2.7.18
  update CONTRIBUTORS for 2.7.18
  updated CHANGELOG for 2.7.18
  [Security] Optimize RoleHierarchy's buildRoleMap method
2016-09-12 11:17:37 -07:00
Nicolas Grekas
c4b9f7db67 [FrameworkBundle] Add CachePoolClearerPass for weak cache pool refs in cache clearers 2016-09-11 22:09:22 +02:00
HeahDude
7806e2a05d Fixed collapsed ChoiceType options attributes 2016-09-11 01:56:49 +02:00
David Maicher
a3db5f06c9 [FrameworkBundle] add support for prioritizing form type extension tags 2016-09-09 19:24:04 +02:00
Nicolas Grekas
193542f84f [FrameworkBundle] Remove cache clearer default value in config 2016-09-09 13:10:26 +02:00
Titouan Galopin
ffdd15ee06 Fix translation:update command count 2016-09-07 10:57:26 +02:00
Fabien Potencier
86f8d74ba1 Merge branch '2.8' into 3.1
* 2.8:
  [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page)
  [Security] Added note inside phpdoc.
  Minor cleanups and improvements
  [form] lazy trans `post_max_size_message`.
  [DI] Fix setting synthetic services on ContainerBuilder
  [ClassLoader] Fix ClassCollectionLoader inlining with declare(strict_types=1)
2016-09-06 16:30:54 -07:00
Fabien Potencier
9e9b41d0ea Merge branch '2.7' into 2.8
* 2.7:
  [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page)
  Minor cleanups and improvements
  [form] lazy trans `post_max_size_message`.
  [DI] Fix setting synthetic services on ContainerBuilder
  [ClassLoader] Fix ClassCollectionLoader inlining with declare(strict_types=1)
2016-09-06 16:19:39 -07:00
Robin Chalas
f2e30bcc58
Use DI exceptions in components compiler passes 2016-09-07 01:13:31 +02:00
Pedro Resende
1393e3e913 [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page) 2016-09-06 15:45:52 -07:00
Nicolas Grekas
a2a442b554 Merge branch '3.1'
* 3.1:
  [FrameworkBundle] Check for class existence before is_subclass_of
  Update GroupSequence.php
  Code enhancement and cleanup
  [Form] Fix transformer tests after the ICU update
  [DI] Add anti-regression test
  Revert "minor #19689 [DI] Cleanup array_key_exists (ro0NL)"
  bumped Symfony version to 3.1.5
  updated VERSION for 3.1.4
  updated CHANGELOG for 3.1.4
  bumped Symfony version to 2.8.11
  updated VERSION for 2.8.10
  updated CHANGELOG for 2.8.10
  [BrowserKit] Fix cookie expiration on 32 bit systems
  bumped Symfony version to 2.7.18
  updated VERSION for 2.7.17
  update CONTRIBUTORS for 2.7.17
  updated CHANGELOG for 2.7.17
  Update misleading comment about RFC4627
2016-09-06 13:07:23 +02:00
Nicolas Grekas
c5aa4f0a7e Merge branch '2.8' into 3.1
* 2.8:
  [FrameworkBundle] Check for class existence before is_subclass_of
  Update GroupSequence.php
  Code enhancement and cleanup
  [Form] Fix transformer tests after the ICU update
  [DI] Add anti-regression test
  Revert "minor #19689 [DI] Cleanup array_key_exists (ro0NL)"
  bumped Symfony version to 2.8.11
  updated VERSION for 2.8.10
  updated CHANGELOG for 2.8.10
  [BrowserKit] Fix cookie expiration on 32 bit systems
  bumped Symfony version to 2.7.18
  updated VERSION for 2.7.17
  update CONTRIBUTORS for 2.7.17
  updated CHANGELOG for 2.7.17
  Update misleading comment about RFC4627
2016-09-06 13:02:40 +02:00
Nicolas Grekas
ccf63e6b8d Merge branch '2.7' into 2.8
* 2.7:
  [FrameworkBundle] Check for class existence before is_subclass_of
  Update GroupSequence.php
  Code enhancement and cleanup
  [DI] Add anti-regression test
  Revert "minor #19689 [DI] Cleanup array_key_exists (ro0NL)"
  [BrowserKit] Fix cookie expiration on 32 bit systems
  bumped Symfony version to 2.7.18
  updated VERSION for 2.7.17
  update CONTRIBUTORS for 2.7.17
  updated CHANGELOG for 2.7.17
  Update misleading comment about RFC4627
2016-09-06 12:55:00 +02:00
Nicolas Grekas
8693611b12 bug #19842 [FrameworkBundle] Check for class existence before is_subclass_of (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[FrameworkBundle] Check for class existence before is_subclass_of

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Same as #19342

Commits
-------

8a9e0f5 [FrameworkBundle] Check for class existence before is_subclass_of
2016-09-06 11:20:32 +02:00
Robin Chalas
8a9e0f526d [FrameworkBundle] Check for class existence before is_subclass_of 2016-09-06 10:59:36 +02:00
Yonel Ceruto
325da3c0d8 Code enhancement and cleanup 2016-09-06 09:26:07 +02:00
Nicolas Grekas
7903a46dfa [Security] Allow run-time configuration of hash algo 2016-09-04 11:38:12 +02:00
Fabien Potencier
35211051fa Merge branch '3.1'
* 3.1:
  [WebProfilerBundle] Fix margin on toolbar route panel.
  Update profiler's layout to use flexbox
  [Yaml] Remove legacy code
2016-09-01 19:14:06 -07:00
Fabien Potencier
cc5a65b7f6 Merge branch '2.8' into 3.1
* 2.8:
  Update profiler's layout to use flexbox
  [Yaml] Remove legacy code
2016-09-01 19:12:52 -07:00
Nicolas Grekas
2b5d642efd [VarDumper] Add LinkStub to create links in HTML dumps 2016-09-01 17:11:16 +02:00
James Halsall
7fdffd1c15
[WebProfilerBundle] Fix margin on toolbar route panel.
When no route was found (404) then the route panel margin would cause
unnecessary space between the status panel and the response time panel.
2016-09-01 14:31:36 +01:00
Nicolas Grekas
03a824a117 bug #19803 [WebProfilerBundle] Fix infinite loop in JS (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[WebProfilerBundle] Fix infinite loop in JS

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes (master only)
| Tests pass?   | yes
| License       | MIT

For some reason, I ended up having this while loop infinitely.

Commits
-------

68b6c32 [WebProfilerBundle] Fix infinite loop in JS
2016-09-01 12:01:16 +02:00
Javier Eguiluz
d986ac055c Update profiler's layout to use flexbox 2016-08-31 11:24:21 -07:00
Nicolas Grekas
68b6c32458 [WebProfilerBundle] Fix infinite loop in JS 2016-08-31 17:02:18 +02:00
Nicolas Grekas
2937ffa125 [VarDumper] Handle attributes in Data clones for more semantic dumps 2016-08-31 13:39:45 +02:00
Fabien Potencier
816a3349ed minor #19774 [TwigBundle] Use vector images on the exception page (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[TwigBundle] Use vector images on the exception page

| Q             | A
| ------------- | ---
| Branch?       | master
| New feature?  | yes
| Tests pass?   | yes
| Fixed tickets | #19756
| License       | MIT

Before:
![capture du 2016-08-29 15-40-37](https://cloud.githubusercontent.com/assets/243674/18053289/f5ab33cc-6dfe-11e6-94cf-720098c214d8.png)

After:
![capture du 2016-08-29 21-00-36](https://cloud.githubusercontent.com/assets/243674/18063547/b274f520-6e2b-11e6-95cd-180ccb4cbf28.png)

Ghost SVG provided by  @patrick-mcdougle, thanks to him.

Commits
-------

1a3a4be [TwigBundle] Use vector images on the exception page
2016-08-30 10:02:24 -07:00