Tôi đang sử dụng Symfony 4.3.8 và tôi không thể tìm thấy bất kỳ thông tin nào về việc khấu hao:
Người dùng không dùng nữa: 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.
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.
Tôi đã tìm kiếm trong stacktrace và tìm thấy điều này:
class UnderscoreNamingStrategy implements NamingStrategy
{
private const DEFAULT_PATTERN = '/(?<=[a-z])([A-Z])/';
private const NUMBER_AWARE_PATTERN = '/(?<=[a-z0-9])([A-Z])/';
/**
* Underscore naming strategy construct.
*
* @param int $case CASE_LOWER | CASE_UPPER
*/
public function __construct($case = CASE_LOWER, bool $numberAware = false)
{
if (! $numberAware) {
@trigger_error(
'Creating ' . self::class . ' without making it number aware is deprecated and will be removed in Doctrine ORM 3.0.',
E_USER_DEPRECATED
);
}
$this->case = $case;
$this->pattern = $numberAware ? self::NUMBER_AWARE_PATTERN : self::DEFAULT_PATTERN;
}
Trong lớp này, hàm tạo luôn được gọi mà không có tham số, vì vậy $ numberAware luôn sai.
Lớp này được gọi trong tệp đã được tạo tự động bởi Symfony Dependency Injection, vì vậy tôi không thể "chỉnh sửa" nó ...
Tôi nghĩ có lẽ đó là trong học thuyết.yaml:
doctrine:
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
Nhưng tôi không tìm thấy bất kỳ tùy chọn nào để cho phép số nhận biết :(