ฉันใช้ Symfony 4.3.8 และฉันไม่สามารถหาข้อมูลเกี่ยวกับการคัดค้านเหล่านี้ได้:
ผู้ใช้เลิกใช้งาน: การสร้าง Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy โดยไม่ทำให้หมายเลขทราบถูกคัดค้านและจะถูกลบใน Doctrine ORM 3.0
การสร้าง Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy โดยไม่ทำให้หมายเลขทราบถูกคัดค้านและจะถูกลบใน Doctrine ORM 3.0
ฉันค้นหาใน stacktrace และพบสิ่งนี้:
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;
}
ในคลาสนี้ Constructor จะถูกเรียกเสมอโดยไม่มีพารามิเตอร์ดังนั้น $ numberAware จึงเป็นเท็จเสมอ
คลาสนี้ถูกเรียกในไฟล์ซึ่งสร้างขึ้นโดยอัตโนมัติโดย Symfony Dependency Injection ดังนั้นฉันจึงไม่สามารถ "แก้ไข" มัน ...
ฉันคิดว่ามันอาจจะเป็นในหลักคำสอน 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
แต่ฉันไม่พบตัวเลือกใด ๆ เพื่ออนุญาตให้ทราบหมายเลข :(