web-dev-qa-db-ja.com

Symfony 4.3.9を4.4.1 / 5.0にアップグレードした後の非推奨警告

廃止予定のないSymfony 3.4.9をインストールしました。そこで、FWを4.1.1にアップグレードしました。今、私はすべてベンダーライブラリから9つの非推奨警告を受け取りました:

  • 番号を認識させずにDoctrine\ORM\Mapping\UnderscoreNamingStrategyを作成することは非推奨であり、Doctrine ORM 3.0では削除されます。
  • "Symfony\Component\HttpKernel\EventListener\ExceptionListener"クラスはSymfony 4.4以降廃止予定です。代わりに "ErrorListener"を使用してください。
  • Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactoryクラスはdoctrine/persistence 1.3以降廃止され、2.0で削除されます。代わりに\ Doctrine\Persistence\Mapping\AbstractClassMetadataFactoryを使用してください。
  • Doctrine\Common\Persistence\Mapping\RuntimeReflectionServiceクラスは、doctrine/persistence 1.3以降廃止され、2.0で削除されます。代わりに\ Doctrine\Persistence\Mapping\RuntimeReflectionServiceを使用してください。
  • Doctrine\Common\Persistence\ObjectManagerクラスは、doctrine/persistence 1.3以降廃止され、2.0で削除されます。代わりに\ Doctrine\Persistence\ObjectManagerを使用してください。
  • Doctrine\Common\Persistence\ObjectRepositoryクラスは、doctrine/persistence 1.3以降廃止され、2.0で削除されます。代わりに\ Doctrine\Persistence\ObjectRepositoryを使用してください。
  • Doctrine\Common\PropertyChangedListenerクラスはdoctrine/persistence 1.3以降廃止され、2.0で削除されます。代わりに\ Doctrine\Persistence\PropertyChangedListenerを使用してください。
  • "twig.exception_controller"設定キーはSymfony 4.4で非推奨になりました。 "null"に設定し、代わりに "framework.error_controller"設定キーを使用してください。 (x2)

これは「正常」ですか、それともcomposer.jsonファイルに問題がありますか?私は再確認しましたが、「修正済み」設定を持つ依存関係を確認できません。

同じ結果で「ゴミ」が残っている可能性があると思ったので、ベンダーフォルダー全体を削除して再度ダウンロードしました。

私のcomposer.jsonファイル:

{
    "type" : "project",
    "license" : "proprietary",
    "require" : {
        "php" : "^7.1.3",
        "ext-ctype" : "*",
        "ext-iconv" : "*",
        "sensio/framework-extra-bundle" : "^5.2",
        "symfony/Apache-pack" : "^1.0",
        "symfony/asset" : "4.4.*",
        "symfony/console" : "4.4.*",
        "symfony/dotenv" : "4.4.*",
        "symfony/expression-language" : "4.4.*",
        "symfony/flex" : "^1.1",
        "symfony/form" : "4.4.*",
        "symfony/framework-bundle" : "4.4.*",
        "symfony/monolog-bundle" : "^3.1",
        "symfony/orm-pack" : "*",
        "symfony/process" : "4.4.*",
        "symfony/security-bundle" : "4.4.*",
        "symfony/serializer-pack" : "*",
        "symfony/swiftmailer-bundle" : "^3.1",
        "symfony/translation" : "4.4.*",
        "symfony/twig-bundle" : "4.4.*",
        "symfony/validator" : "4.4.*",
        "symfony/web-link" : "4.4.*",
        "symfony/webpack-encore-bundle" : "^1.1",
        "symfony/yaml" : "4.4.*"
    },
    "require-dev" : {
        "symfony/debug-pack" : "*",
        "symfony/maker-bundle" : "^1.0",
        "symfony/profiler-pack" : "^1.0",
        "symfony/test-pack" : "*",
        "symfony/web-server-bundle" : "4.4.*"
    },
    "config" : {
        "preferred-install" : {
            "*" : "dist"
        },
        "sort-packages" : true,
        "secure-http" : false
    },
    "autoload" : {
        "psr-4" : {
            "App\\" : "src/"
        }
    },
    "autoload-dev" : {
        "psr-4" : {
            "App\\Tests\\" : "tests/"
        },
        "classmap" : [
            "vendor/phpasn1"
        ]
    },
    "replace" : {
        "paragonie/random_compat" : "2.*",
        "symfony/polyfill-ctype" : "*",
        "symfony/polyfill-iconv" : "*",
        "symfony/polyfill-php71" : "*",
        "symfony/polyfill-php70" : "*",
        "symfony/polyfill-php56" : "*"
    },
    "conflict" : {
        "symfony/symfony" : "*"
    },
    "extra" : {
        "symfony" : {
            "allow-contrib" : false,
            "require" : "4.4.*"
        }
    }
}

[〜#〜]編集[〜#〜]

インストールされたパッケージをcomposer showでチェックしましたが、インストールされたパッケージの少なくとも2つが上記の非推奨リストに関連していることがわかりました。

(...)
doctrine/orm                        v2.7.0  Object-Relational-Mapper for PHP
doctrine/persistence                1.3.3   The Doctrine Persistence project is a set of shared...
(...)

したがって、これらのパッケージの利用可能なバージョンをcomposer info doctrine/persistence --allで確認したところ、最新の非開発バージョンがインストールされていることがわかりました。

name     : doctrine/persistence
descrip. : The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.
keywords : mapper, object, odm, orm, persistence
versions : dev-master, 2.0.x-dev, 1.3.x-dev, * 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.x-dev, 1.2.0, 1.1.x-dev, 1.1.1, v1.1.0, 1.0.x-dev, v1.0.1, v1.0.0, dev-1.3.x-merge-up-into-master_5df35c38f354a9.94042071, dev-1.3.x-merge-up-into-master_5df33dc289ea03.65167777, dev-1.3.x-merge-up-into-master_5df29d964b0aa5.96685696, dev-github-funding, dev-master-old
(...)

doctrine-ormも同様です。

Doctrine/persistenceのGitHubサイトもこれを裏付けているようです: https://github.com/doctrine/persistence/releases

そのため、これは本当に正常な動作であり、将来これらのパッケージが更新されると、非推奨のメッセージが表示されなくなると思います。

ソリューションに関する注意

受け入れられた回答を読んだ人なら誰でも気づくでしょうが、まだ解決できない5つの非推奨があります。これに対する修正があるASAの回答を含めます。私の前に誰かがこれに気づいたら、この質問への回答を自由に追加してください。ありがとう。

13
Nelson Teixeira

すべてが修正されるまでDoctrine\Common\Persistence\*の減価償却を解消したい場合は、"conflict": { "doctrine/persistence": "1.3.*" }composer.jsonに追加して、バージョン1.2。*のdoctrine/persistenceをそのまま使用できます。

3
Damien Debin