Peringatan penghentian setelah meningkatkan Symfony 4.3.9 ke 4.4.1 / 5.0

12

Saya memiliki instalasi Symfony 3.4.9 yang bebas dari depresiasi. Jadi saya memutakhirkan FW ke 4.1.1. Sekarang saya mendapat 9 peringatan penghentian semua datang dari perpustakaan vendor:

  • Membuat Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy tanpa membuatnya sadar nomor sudah usang dan akan dihapus di Doctrine ORM 3.0.
  • Kelas "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" sudah tidak digunakan lagi sejak Symfony 4.4, sebagai gantinya, gunakan "ErrorListener".
  • Kelas Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory sudah tidak digunakan lagi sejak doctrine / persistence 1.3 dan akan dihapus pada 2.0. Gunakan \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory sebagai gantinya.
  • Kelas Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService sudah tidak digunakan lagi sejak doctrine / persistence 1.3 dan akan dihapus pada 2.0. Gunakan \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService sebagai gantinya.
  • Kelas Doctrine \ Common \ Persistence \ ObjectManager sudah tidak digunakan lagi sejak doctrine / persistence 1.3 dan akan dihapus pada 2.0. Gunakan \ Doctrine \ Persistence \ ObjectManager sebagai gantinya.
  • Kelas Doctrine \ Common \ Persistence \ ObjectRepository sudah tidak digunakan lagi sejak doctrine / persistence 1.3 dan akan dihapus pada 2.0. Gunakan \ Doctrine \ Persistence \ ObjectRepository sebagai gantinya.
  • Kelas Doctrine \ Common \ PropertyChangedListener sudah tidak digunakan lagi sejak doctrine / persistence 1.3 dan akan dihapus pada 2.0. Gunakan \ Doctrine \ Persistence \ PropertyChangedListener sebagai gantinya.
  • Kunci konfigurasi "twig.exception_controller" sudah tidak digunakan lagi di Symfony 4.4, setel ke "null" dan gunakan kunci konfigurasi "framework.error_controller". (x2)

Apakah ini "normal" atau ada masalah dalam file composer.json saya? Saya mengecek dan tidak dapat melihat ketergantungan yang memiliki pengaturan "tetap".

Saya bahkan menghapus folder vendor lengkap dan mengunduh lagi karena saya pikir mungkin ada "sampah" yang tersisa, dengan hasil yang sama.

File composer.json saya:

{
    "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.*"
        }
    }
}

EDIT

Saya memeriksa paket yang diinstal dengan composer showdan melihat bahwa setidaknya 2 paket yang diinstal relevan dengan daftar penghentian di atas:

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

Jadi saya memeriksa versi yang tersedia dari paket-paket ini composer info doctrine/persistence --alldan saya melihat bahwa ia telah menginstal versi non-dev terbaru:

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
(...)

Sama untuk doctrine-orm.

Situs GitHub untuk doktrin / kegigihan juga tampaknya menguatkan ini: https://github.com/doctrine/persistence/releases

Jadi ini membuat saya berpikir bahwa ini adalah perilaku yang benar-benar normal dan bahwa di masa depan, ketika paket-paket ini diperbarui, pesan penghentian akan hilang.

Catatan tentang solusi

Seperti orang yang telah membaca jawaban yang diterima akan memperhatikan, masih ada 5 penghinaan yang belum dapat diselesaikan. Saya akan menyertakan jawaban ASA ada perbaikan untuk ini. Jika ada yang memperhatikan ini sebelum saya, silakan tambahkan jawaban untuk pertanyaan ini. Terima kasih.

Nelson Teixeira
sumber
Jika mereka berasal dari perpustakaan vendor dan bukan kode Anda - maka itu normal. Anda harus memperbarui vendor yang dimaksud dan yang harus memperbaikinya. Perlu diingat bahwa tidak semua perpustakaan mutakhir dengan penghentian simfoni & doktrin terbaru sehingga memperbarui mungkin tidak segera memperbaikinya.
tftd
Masalahnya adalah ... vendor mana? ada beberapa paket untuk doktrin dan ranting. AFAIU ini yang terlibat. Yang mana yang harus saya pilih di json? Saya baru saja memeriksa ... hanya untuk paket doktrin ada 33.
Nelson Teixeira
Cara termudah yang saya temukan untuk mengatasinya adalah dengan memulai proyek dalam mode dev dan melewati beberapa halaman di browser Anda. Bilah alat debug akan menampilkan pemberitahuan penghentian dan Anda dapat menggunakan tracetautan untuk melihat stacktrace dan pin-point dari mana asalnya. :)
tftd
2
Banyak hal berubah antara 4.3 dan 4.4. Ingatlah bahwa Anda hanya perlu membersihkan penghinaan sebelum pindah ke 5.x. Jadi cukup bajak dan perbaiki seperti yang lain meskipun yang pertama sebenarnya adalah masalah Doktrin dan dapat diperbaiki dengan: stackoverflow.com/questions/58975182/…
Cerad
1
Tolong jangan hapus pertanyaannya. Bahkan jika tidak ada yang bisa dilakukan, kecuali menunggu pembaruan vendor. Saya tiba di sini melalui penghinaan Doktrin (tentang ObjectManager) dan itu membantu saya untuk melihat, apa yang terjadi.
k00ni

Jawaban:

3

Oke, saya sudah bisa memperbaiki yang berikut ini. Jangan ragu untuk mengedit ini jika ada yang tahu cara memperbaiki yang lain.

1.) Dari Cerad di Komentar: Deprecation: Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy tanpa membuatnya sadar nomor sudah usang

9.) Twig twig.exception_controller opsi konfigurasi: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.) ExceptionListener membersihkan ketika saya memperbaiki dua item di atas, membawa saya ke hanya 5 penghinaan


Akhirnya 5 yang tersisa, tampaknya diketahui dan akan diperbaiki per ini: Peringatan kelas yang sudah usang di konsol Symfony 5.0.1 di Windows

MEmerson
sumber
1
Unggul. Juga mengurangi jumlah depresiasi saya menjadi 5. Terima kasih.
Nelson Teixeira
3

Jika Anda ingin menghilangkan Doctrine\Common\Persistence\*penyusutan sampai semuanya diperbaiki, Anda dapat menambahkannya "conflict": { "doctrine/persistence": "1.3.*" }ke Anda composer.jsondan tetap menggunakan versi 1.2. * Dari doktrin / kegigihan .

Damien Debin
sumber
2
Terima kasih atas informasinya, tetapi saya lebih suka memiliki pesan, atau saya mungkin lupa saya harus memperbaikinya. :)
Nelson Teixeira