Как убрать deprecated warnings в Symfony 2?

Разбирался я тут недавно с подключением различных бандлов к symfony 2. Необходимо было подключить много чего, а в частности Doctrine 2 ORM/ODM бандлы. Вроде проблемы с composer уже решил, но все равно надо было определить рабочие версии и их совместимость. Как всегда, не без нюансов.

Рабочие версии бандлов и модуля mongo

Версия монго-драйвера: 1.3.0beta2

Это те версии, с которыми всё в результате завелось. А изначально не заводилось, и symfony плевался вот такой ошибкой:

Deprecated: Function MongoCollection::setSlaveOkay() is deprecated

Фишка в том, что doctrine-mongodb-odm на данный момент не совместим с версией 1.3.x монго-драйвера, и надо либо делать downgrade до версии 1.2.10

либо подавлять такие предупреждения (warnings). Делать downgrade мне не хотелось (тем  более, что там есть баги), так что я пошел по второму пути.

Убираем depracated warnings в Symfony 2

Вообще так конечно делать не следует, а то недалеко и до подавления ошибок (@) дойти. Однако есть ситуации, типа этой, в которых это – лучший вариант. Установка error_reporting(-1) содержится в Symfony\Component\HttpKernel\Kernel::init() и в скомпиленном /app/bootstrap.php.cache Чтобы убрать его нужно определить функцию выше (в нашем AppKernel.php) например вот так:

Соответственно делаем это только для dev-среды. А вообще, так делать плохо! Ошибок в вашем приложении быть не должно!) Но это только в идеальной стране идеальные программисты пишут идеальный код…. а в рилайфе всякое случается…

Ссылки

mongodb driver 1.2.11 Function MongoCollection::setSlaveOkay() is deprecated

4 Comments

  1. class AppKernel extends Kernel
    {
    public function init()
    {
    parent::init();
    error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT ^E_DEPRECATED); // choose a level you need
    }

    // ….
    }

      1. Ага рабочий вариант на этих:
        “require”: {
        “php”: “>=5.3.3”,
        “symfony/symfony”: “2.1.*”,
        “doctrine/orm”: “>=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.1.*",
        "doctrine/mongodb-odm-bundle": "3.0.*",
        "doctrine/mongodb-odm":"1.0.*",
        "doctrine/mongodb":"1.0.*",
        "twig/extensions": "1.0.*@dev",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.1.*",
        "symfony/monolog-bundle": "2.1.*",
        "sensio/distribution-bundle": "2.1.*",
        "sensio/framework-extra-bundle": "2.1.*",
        "sensio/generator-bundle": "2.1.*",
        "jms/security-extra-bundle": "1.2.*",
        "jms/di-extra-bundle": "1.1.*"
        },

Leave a Comment