Cảnh báo khấu hao sau khi nâng cấp Symfony 4.3.9 lên 4.4.1 / 5.0


12

Tôi đã cài đặt Symfony 3.4.9 không dùng tiền. Vì vậy, tôi đã nâng cấp FW lên 4.1.1. Bây giờ tôi đã nhận được 9 cảnh báo không dùng nữa từ các thư viện của nhà cung cấp:

  • Tạo học thuyết \ ORM \ Mapping \ UnderscoreNamingStrargety mà không làm cho số nhận biết bị phản đối và sẽ bị xóa trong Doctrine ORM 3.0.
  • Lớp "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" không được dùng nữa kể từ Symfony 4.4, thay vào đó hãy sử dụng "ErrorListener".
  • Lớp Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory không được dùng nữa vì học thuyết / kiên trì 1.3 và sẽ bị xóa trong 2.0. Thay vào đó, hãy sử dụng \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory.
  • Lớp Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService không được dùng nữa vì học thuyết / kiên trì 1.3 và sẽ bị xóa trong 2.0. Thay vào đó, hãy sử dụng \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService.
  • Lớp Doctrine \ Common \ Persistence \ ObjectManager không được dùng nữa vì học thuyết / kiên trì 1.3 và sẽ bị xóa trong 2.0. Thay vào đó, hãy sử dụng \ Doctrine \ Persistence \ ObjectManager.
  • Lớp Doctrine \ Common \ Persistence \ ObjectRep repository bị phản đối vì học thuyết / kiên trì 1.3 và sẽ bị xóa trong 2.0. Thay vào đó, hãy sử dụng \ Doctrine \ Persistence \ ObjectRep repository.
  • Lớp Doctrine \ Common \ PropertyChangedListener không được dùng nữa vì doctrine / kiên trì 1.3 và sẽ bị xóa trong 2.0. Thay vào đó, hãy sử dụng \ Doctrine \ Persistence \ PropertyChangedListener.
  • Khóa cấu hình "twig.exception_controll" đã không được dùng trong Symfony 4.4, đặt nó thành "null" và sử dụng khóa cấu hình "framework.error_controll" để thay thế. (x2)

Đây có phải là "bình thường" hoặc có bất kỳ vấn đề nào trong tệp composer.json của tôi không? Tôi đã kiểm tra lại và không thể thấy bất kỳ sự phụ thuộc nào có bất kỳ cài đặt "cố định" nào.

Tôi thậm chí đã xóa thư mục nhà cung cấp đầy đủ và tải xuống lại vì tôi nghĩ có thể còn "rác", với kết quả tương tự.

Tệp composer.json của tôi:

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

BIÊN TẬP

Tôi đã kiểm tra các gói đã cài đặt với composer showvà thấy rằng ít nhất 2 trong số các gói đã cài đặt có liên quan với danh sách khấu hao ở trên:

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

Vì vậy, tôi đã kiểm tra các phiên bản có sẵn của các gói này composer info doctrine/persistence --allvà tôi thấy rằng nó đã cài đặt phiên bản không dành cho nhà phát triển mới nhất:

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

Tương tự cho doctrine-orm.

Trang web GitHub cho học thuyết / kiên trì dường như cũng chứng thực điều này: https://github.com/doctrine/persistence/release

Vì vậy, điều này khiến tôi nghĩ rằng đây thực sự là hành vi bình thường và trong tương lai, khi các gói này được cập nhật, các thông báo không dùng nữa sẽ biến mất.

Lưu ý về giải pháp

Như bất cứ ai đã đọc câu trả lời được chấp nhận sẽ nhận thấy, vẫn còn 5 sự phản đối chưa thể giải quyết được. Tôi sẽ bao gồm một câu trả lời ASA có một sửa chữa cho điều này. Nếu bất cứ ai nhận thấy điều này trước tôi, xin vui lòng rơi vào câu trả lời cho câu hỏi này. Cảm ơn.


Nếu họ đến từ thư viện nhà cung cấp chứ không phải mã của bạn - thì đó là chuyện bình thường. Bạn nên cập nhật các nhà cung cấp trong câu hỏi và điều đó sẽ khắc phục nó. Hãy nhớ rằng không phải tất cả các thư viện đều được cập nhật với sự phản đối về giáo lý và giáo lý mới nhất nên việc cập nhật có thể không khắc phục được ngay.
tftd

Vấn đề là ... nhà cung cấp nào? có nhiều gói cho học thuyết và cho cành. AFAIU đây là những người liên quan. Những cái nào tôi nên chọn trong json? Tôi vừa kiểm tra ... chỉ với gói học thuyết có 33.
Nelson Teixeira

Cách dễ nhất mà tôi đã tìm thấy để giải quyết vấn đề này là bắt đầu dự án ở chế độ dev và đi qua một số trang trong trình duyệt của bạn. Thanh công cụ gỡ lỗi sẽ hiển thị cho bạn các thông báo phản đối và bạn có thể sử dụng các traceliên kết để xem stacktrace và pin-point nơi chúng đến. :)
tftd

2
Mọi thứ đã thay đổi giữa 4.3 và 4.4. Hãy nhớ rằng bạn chỉ cần dọn sạch tiền khấu hao trước khi chuyển sang 5.x. Vì vậy, chỉ cần cày xới và sửa chữa như mọi thứ khác mặc dù vấn đề đầu tiên thực sự là vấn đề về Học thuyết và có thể được khắc phục bằng: stackoverflow.com/questions/58975182/
Lỗi

1
Xin đừng xóa câu hỏi. Ngay cả khi không có gì để làm, ngoại trừ chờ cập nhật của nhà cung cấp. Tôi đã đến đây thông qua sự phản đối của Học thuyết (về ObjectManager) và nó đã giúp tôi thấy, chuyện gì đang xảy ra.
k00ni

Câu trả lời:


3

Ok, tôi đã có thể sửa lỗi sau. Hãy chỉnh sửa nó nếu có ai biết cách sửa bất kỳ cái nào khác.

1.) Từ Cerad trong phần Nhận xét: Khấu hao: Học thuyết \ ORM \ Mapping \ UnderscoreNamingStrargety mà không làm cho số đó nhận biết bị phản đối

9.) Tùy chọn cấu hình Twig twig.exception_controll: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.) ExceptionListener bị xóa khi tôi sửa hai mục trên, đưa tôi xuống chỉ còn 5 khấu hao


Cuối cùng, 5 cái còn lại, dường như đã được biết và sẽ được sửa theo điều này: Cảnh báo các lớp không dùng nữa trong bảng điều khiển Symfony 5.0.1 trên Windows


1
Tuyệt vời. Cũng giảm số lượng khấu hao của tôi xuống còn 5. Cảm ơn bạn.
Nelson Teixeira

3

Nếu bạn muốn loại bỏ các khoản Doctrine\Common\Persistence\*khấu hao cho đến khi mọi thứ được khắc phục, bạn có thể thêm một "conflict": { "doctrine/persistence": "1.3.*" }vào composer.jsonvà ở lại với phiên bản 1.2. * Của học thuyết / kiên trì .


2
Cảm ơn thông tin, nhưng tôi muốn có tin nhắn, hoặc có lẽ tôi sẽ quên tôi phải sửa nó. :)
Nelson Teixeira
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.