Symfony 8.2: object mapper probe is a fatal error when symfony/translation is not installed
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 68/100
Hướng nghiên cứu
Read src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php around line 217 and review the condition introduced for #8627. Reproduce the reported failure with Symfony FrameworkBundle 8.2 and no symfony/translation. Change the version gate so it avoids autoloading the FrameworkBundle command with its optional parent; done when the container build succeeds in that setup.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
API Platform version(s) affected: 5.0.2, and main at 23c4876d1726b17826fbc8901791f8f843eadf42
Description
With symfony/framework-bundle 8.2 and without symfony/translation, the container build stops with a fatal error:
PHP Fatal error: Uncaught Error: Class "Symfony\Component\Translation\Command\TranslationExtractCommand" not found in vendor/symfony/framework-bundle/Command/TranslationExtractCommand.php:26
#3 vendor/api-platform/core/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php(217): class_exists('Symfony\\Bundle\\...')
In FrameworkBundle 8.2, Symfony\Bundle\FrameworkBundle\Command\TranslationExtractCommand extends Symfony\Component\Translation\Command\TranslationExtractCommand. FrameworkBundle 8.2 lists symfony/translation only in require-dev, so the parent class can be absent. class_exists() with autoload then includes the file, and PHP throws an Error instead of returning false.
#8627 (for #8626) checks the Translation class first, but it keeps the FrameworkBundle class as a fallback. When symfony/translation is not installed, the first check returns false, the fallback runs, and the same error occurs.
How to reproduce
composer init -n --name=x/repro --stability=dev
composer config prefer-stable true
composer require symfony/framework-bundle:8.2.x-dev
cat > probe.php <<'PHP'
<?php
require __DIR__.'/vendor/autoload.php';
use Symfony\Component\Translation\Command\TranslationExtractCommand;
use Symfony\Bundle\FrameworkBundle\Command\TranslationExtractCommand as FrameworkTranslationExtractCommand;
var_dump(class_exists(TranslationExtractCommand::class) || class_exists(FrameworkTranslationExtractCommand::class));
PHP
php probe.php
The condition is the one from ApiPlatformExtension on main. The script stops with the fatal error above.
Possible Solution
Do not autoload a FrameworkBundle class whose parent comes from an optional package. The gate needs to know only that FrameworkBundle is 7.3 or later. For example, check the version with Composer\InstalledVersions, or check a class from 7.3 that has no optional parent.
Additional Context
A production install of Maho got 8.2.x-dev and hit this error on every REST request. composer require symfony/translation is a workaround. When Symfony releases 8.2.0, every application without symfony/translation gets this error.
- Ngôn ngữ chính
- PHP
- Star
- 2.6k
- Fork
- 989
- Merge trung bình
- 1 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 102
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của api-platform/core
-
JSON:API: resource schemas (`*.jsonapi`) have `properties` but no `type: object`Có thể đã có người làm @ousamabenyounes đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 80/100
api-platform/core#8701 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
JSON:API: `JsonApiCollectionBaseSchemaNoPagination` declares `data` as `type: array` without `items`Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
api-platform/core#8699 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
api:openapi:export --spec-version=3.0.0 outputs `webhooks`, which is invalid in OpenAPI 3.0Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
api-platform/core#8690 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
api-platform/core#8680 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Json-Schema] Nested resources lost externalDoc and description dataCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
api-platform/core#8721 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của api-platform/core
Issue tương tự
-
InvoiceSettled is answered 200 when the invoice cannot be re-fetched, so BTCPay never redelivers itĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
btcpayserver/woocommerce-greenfield-plugin#93 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
opnsense/core#11052 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
grokability/snipe-it#19857 ·
Maintainer thường phản hồi trong vòng 1 ngày