From 83b2d7c53b95f41b379bb68a9e61a24da47f7253 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Sun, 27 Sep 2015 16:46:30 +0200 Subject: [PATCH] Remove profiler storages --- UPGRADE-2.8.md | 115 ++++++++++-------- .../DependencyInjection/Configuration.php | 36 +++++- .../Profiler/BaseMemcacheProfilerStorage.php | 5 + .../Profiler/MemcacheProfilerStorage.php | 5 + .../Profiler/MemcachedProfilerStorage.php | 5 + .../Profiler/MongoDbProfilerStorage.php | 6 + .../Profiler/MysqlProfilerStorage.php | 5 + .../Profiler/PdoProfilerStorage.php | 5 + .../Profiler/RedisProfilerStorage.php | 5 + .../Profiler/SqliteProfilerStorage.php | 5 + .../Profiler/MemcacheProfilerStorageTest.php | 3 + .../Profiler/MemcachedProfilerStorageTest.php | 3 + .../Profiler/MongoDbProfilerStorageTest.php | 3 + .../Profiler/RedisProfilerStorageTest.php | 3 + .../Profiler/SqliteProfilerStorageTest.php | 3 + 15 files changed, 154 insertions(+), 53 deletions(-) diff --git a/UPGRADE-2.8.md b/UPGRADE-2.8.md index 174d941b45..5e4c0f6021 100644 --- a/UPGRADE-2.8.md +++ b/UPGRADE-2.8.md @@ -170,7 +170,7 @@ Form } ``` - If your extension has to be compatible with Symfony 2.3-2.8, use the + If your extension has to be compatible with Symfony 2.3-2.8, use the following statement: ```php @@ -332,66 +332,81 @@ DependencyInjection WebProfiler ----------- -The `profiler:import` and `profiler:export` commands have been deprecated and -will be removed in 3.0. + * The `profiler:import` and `profiler:export` commands have been deprecated and + will be removed in 3.0. -The web development toolbar has been completely redesigned. This update has -introduced some changes in the HTML markup of the toolbar items. + * The web development toolbar has been completely redesigned. This update has + introduced some changes in the HTML markup of the toolbar items. -Before: + Before: -Information was wrapped with simple `` elements: + Information was wrapped with simple `` elements: -```twig -{% block toolbar %} - {% set icon %} - - - {{ '%.1f'|format(collector.memory / 1024 / 1024) }} MB - - {% endset %} -{% endblock %} -``` + ```twig + {% block toolbar %} + {% set icon %} + + + {{ '%.1f'|format(collector.memory / 1024 / 1024) }} MB + + {% endset %} + {% endblock %} + ``` -After: + After: -Information is now semantically divided into values and labels according to -the `class` attribute of each `` element: + Information is now semantically divided into values and labels according to + the `class` attribute of each `` element: -```twig -{% block toolbar %} - {% set icon %} - - - {{ '%.1f'|format(collector.memory / 1024 / 1024) }} - - MB - {% endset %} -{% endblock %} -``` + ```twig + {% block toolbar %} + {% set icon %} + + + {{ '%.1f'|format(collector.memory / 1024 / 1024) }} + + MB + {% endset %} + {% endblock %} + ``` -Most of the blocks designed for the previous toolbar will still be displayed -correctly. However, if you want to support both the old and the new toolbar, -it's better to make use of the new `profiler_markup_version` variable passed -to the toolbar templates: + Most of the blocks designed for the previous toolbar will still be displayed + correctly. However, if you want to support both the old and the new toolbar, + it's better to make use of the new `profiler_markup_version` variable passed + to the toolbar templates: -```twig -{% block toolbar %} - {% set profiler_markup_version = profiler_markup_version|default(1) %} + ```twig + {% block toolbar %} + {% set profiler_markup_version = profiler_markup_version|default(1) %} - {% set icon %} - {% if profiler_markup_version == 1 %} + {% set icon %} + {% if profiler_markup_version == 1 %} - {# code for the original toolbar #} + {# code for the original toolbar #} - {% else %} + {% else %} - {# code for the new toolbar (Symfony 2.8+) #} + {# code for the new toolbar (Symfony 2.8+) #} - {% endif %} - {% endset %} -{% endblock %} -``` + {% endif %} + {% endset %} + {% endblock %} + ``` + + * All the profiler storages different than `FileProfilerStorage` have been + deprecated. The deprecated classes are: + + - `Symfony\Component\HttpKernel\Profiler\BaseMemcacheProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\MemcachedProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\MemcacheProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\MongoDbProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\MysqlProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\PdoProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\RedisProfilerStorage` + - `Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage` + + The alternative solution is to use the `FileProfilerStorage` or create your + own storage implementing the `ProfileStorageInterface`. FrameworkBundle --------------- @@ -448,7 +463,7 @@ Config * The `\Symfony\Component\Config\Resource\ResourceInterface::isFresh()` method has been deprecated and will be removed in Symfony 3.0 because it assumes that resource - implementations are able to check themselves for freshness. + implementations are able to check themselves for freshness. If you have custom resources that implement this method, change them to implement the `\Symfony\Component\Config\Resource\SelfCheckingResourceInterface` sub-interface instead @@ -470,6 +485,6 @@ Config class MyCustomResource implements SelfCheckingResourceInterface { ... } ``` - Additionally, if you have implemented cache validation strategies *using* `isFresh()` - yourself, you should have a look at the new cache validation system based on + Additionally, if you have implemented cache validation strategies *using* `isFresh()` + yourself, you should have a look at the new cache validation system based on `ResourceChecker`s. diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index 023276e476..4fea40de64 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -272,9 +272,39 @@ class Configuration implements ConfigurationInterface ->booleanNode('collect')->defaultTrue()->end() ->booleanNode('only_exceptions')->defaultFalse()->end() ->booleanNode('only_master_requests')->defaultFalse()->end() - ->scalarNode('dsn')->defaultValue('file:%kernel.cache_dir%/profiler')->end() - ->scalarNode('username')->defaultValue('')->end() - ->scalarNode('password')->defaultValue('')->end() + ->scalarNode('dsn') + ->defaultValue('file:%kernel.cache_dir%/profiler') + ->beforeNormalization() + ->ifTrue(function ($v) { return 'file:' !== substr($v, 0, 5); }) + ->then(function ($v) { + @trigger_error('The profiler.dsn configuration key must start with "file:" because all the storages except the filesystem are deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); + + return $v; + }) + ->end() + ->end() + ->scalarNode('username') + ->defaultValue('') + ->beforeNormalization() + ->always() + ->then(function ($v) { + @trigger_error('The profiler.username configuration key is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); + + return $v; + }) + ->end() + ->end() + ->scalarNode('password') + ->defaultValue('') + ->beforeNormalization() + ->always() + ->then(function ($v) { + @trigger_error('The profiler.password configuration key is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); + + return $v; + }) + ->end() + ->end() ->scalarNode('lifetime')->defaultValue(86400)->end() ->arrayNode('matcher') ->canBeUnset() diff --git a/src/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php index c6395bd67a..3eb69194d5 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php @@ -11,10 +11,15 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\BaseMemcacheProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * Base Memcache storage for profiling information in a Memcache. * * @author Andrej Hudec + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ abstract class BaseMemcacheProfilerStorage implements ProfilerStorageInterface { diff --git a/src/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php index 2727405cb1..997c0dd45f 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php @@ -11,10 +11,15 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\MemcacheProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * Memcache Profiler Storage. * * @author Andrej Hudec + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ class MemcacheProfilerStorage extends BaseMemcacheProfilerStorage { diff --git a/src/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php index 0c57373aef..edf6ff19a8 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php @@ -11,10 +11,15 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\MemcachedProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * Memcached Profiler Storage. * * @author Andrej Hudec + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ class MemcachedProfilerStorage extends BaseMemcacheProfilerStorage { diff --git a/src/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php index f35a7f7419..fddc87e16b 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php @@ -11,6 +11,12 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\MongoDbProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + +/** + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. + */ class MongoDbProfilerStorage implements ProfilerStorageInterface { protected $dsn; diff --git a/src/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php index 92e8a1b062..45d9cfffbb 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php @@ -11,10 +11,15 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\MysqlProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * A ProfilerStorage for Mysql. * * @author Jan Schumann + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ class MysqlProfilerStorage extends PdoProfilerStorage { diff --git a/src/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php index 48f813f2e7..4294c098fe 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php @@ -11,11 +11,16 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\PdoProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * Base PDO storage for profiling information in a PDO database. * * @author Fabien Potencier * @author Jan Schumann + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ abstract class PdoProfilerStorage implements ProfilerStorageInterface { diff --git a/src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php index b0e14ea456..2568e3b5f5 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php @@ -11,11 +11,16 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\RedisProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * RedisProfilerStorage stores profiling information in Redis. * * @author Andrej Hudec * @author Stephane PY + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ class RedisProfilerStorage implements ProfilerStorageInterface { diff --git a/src/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php index 4a996fd12d..2f78864f90 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php @@ -11,10 +11,15 @@ namespace Symfony\Component\HttpKernel\Profiler; +@trigger_error('The '.__NAMESPACE__.'\SqliteProfilerStorage class is deprecated since Symfony 2.8 and will be removed in 3.0. Use FileProfilerStorage instead.', E_USER_DEPRECATED); + /** * SqliteProfilerStorage stores profiling information in a SQLite database. * * @author Fabien Potencier + * + * @deprecated Deprecated since Symfony 2.8, to be removed in Symfony 3.0. + * Use {@link FileProfilerStorage} instead. */ class SqliteProfilerStorage extends PdoProfilerStorage { diff --git a/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php b/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php index f582dff799..5b23fcd344 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php @@ -14,6 +14,9 @@ namespace Symfony\Component\HttpKernel\Tests\Profiler; use Symfony\Component\HttpKernel\Profiler\MemcacheProfilerStorage; use Symfony\Component\HttpKernel\Tests\Profiler\Mock\MemcacheMock; +/** + * @group legacy + */ class MemcacheProfilerStorageTest extends AbstractProfilerStorageTest { protected static $storage; diff --git a/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php b/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php index 565ac35f33..351804c265 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php @@ -14,6 +14,9 @@ namespace Symfony\Component\HttpKernel\Tests\Profiler; use Symfony\Component\HttpKernel\Profiler\MemcachedProfilerStorage; use Symfony\Component\HttpKernel\Tests\Profiler\Mock\MemcachedMock; +/** + * @group legacy + */ class MemcachedProfilerStorageTest extends AbstractProfilerStorageTest { protected static $storage; diff --git a/src/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php b/src/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php index 29525fe6bd..48615fa6a0 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php @@ -47,6 +47,9 @@ class MongoDbProfilerStorageTestDataCollector extends DataCollector } } +/** + * @group legacy + */ class MongoDbProfilerStorageTest extends AbstractProfilerStorageTest { protected static $storage; diff --git a/src/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php b/src/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php index 91354ae935..1ddc2debda 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php @@ -14,6 +14,9 @@ namespace Symfony\Component\HttpKernel\Tests\Profiler; use Symfony\Component\HttpKernel\Profiler\RedisProfilerStorage; use Symfony\Component\HttpKernel\Tests\Profiler\Mock\RedisMock; +/** + * @group legacy + */ class RedisProfilerStorageTest extends AbstractProfilerStorageTest { protected static $storage; diff --git a/src/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php b/src/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php index 43546c1a16..d99f025b4a 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php @@ -13,6 +13,9 @@ namespace Symfony\Component\HttpKernel\Tests\Profiler; use Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage; +/** + * @group legacy + */ class SqliteProfilerStorageTest extends AbstractProfilerStorageTest { protected static $dbFile;