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


12

廃止予定のない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の回答を含めます。私の前に誰かがこれに気づいたら、この質問への回答を追加してください。ありがとう。


それらがあなたのコードではなくベンダーライブラリからのものである場合-それは正常です。問題のベンダーを更新する必要があります。それで問題が解決します。すべてのライブラリが最新のsymfonyとdoctrineの非推奨に対応しているわけではないため、更新してもすぐには修正されない可能性があることに注意してください。
tftd

問題は...どのベンダーですか?教義と小枝のための複数のパッケージがあります。AFAIUこれらは関係するものです。私はjsonでどちらを選ぶべきですか?私はそこにあるだけで教義パッケージのために...確認33.
ネルソン・テイシェイラ

私がこれに対処するために見つけた最も簡単な方法は、開発モードでプロジェクトを開始し、ブラウザーのいくつかのページを通過することです。デバッグツールバーに非推奨の通知が表示され、traceリンクを使用してスタックトレースとそれらがどこから発生したかを確認できます。:)
tftd

2
4.3と4.4の間で変更がありました。5.xに移行する前に、廃止予定をクリーンアップするだけでよいことに注意してください。:最初のものは、実際にDoctrineの問題であるとして固定することができても、これだけ、他の同じよう通って、修正耕すstackoverflow.com/questions/58975182/...
CERAD

1
質問は削除しないでください。ベンダーの更新を待つ以外に、何もする必要はありません。私はDoctrineの非推奨(についてObjectManager)を介してここに到着しました。
k00ni

回答:


3

次の問題は修正できました。他の修正方法がわかっている場合は、自由に編集してください。

1.)コメントのCeradから:非推奨:番号を認識させないでのDoctrine \ ORM \ Mapping \ UnderscoreNamingStrategyは非推奨です

9.)Twig twig.exception_controller構成オプション:https : //github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.)上記の2つの項目を修正したときにExceptionListenerがクリアされ、非推奨が5つになりました


最後に、残りの5つは既知のようで、これにより修正される予定です: Windows上のSymfony 5.0.1コンソールでの非推奨クラスの警告


1
素晴らしい。また、廃止予定の数を5に減らしました。ありがとうございます。
ネルソンテイシェイラ

3

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


2
情報をありがとう、しかし私はむしろメッセージを持っています、または私はおそらくこれを修正する必要があることを忘れるでしょう。:)
ネルソンテイシェイラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.