簡體   English   中英

Symfony2,EntityManager :: getRepository(Namespace \ To \ Some \ Class :: class OR'** Bundle:Entity')

[英]Symfony2, EntityManager::getRepository(Namespace\To\Some\Class::class OR '**Bundle:Entity')

Symfony2文檔說我應該使用別名快捷方式'ByBundle:myEntity'作為實體路徑:

$em->getRepository('ByBundle:myEntity');

但是這個字符串文字是沒有用的 - 沒有重構,沒有快速和自動重命名IDE中的實體類。

我使用magic method ::class

$em->getRepository(\ByBundle\Entity\myEntity::class);

問題:我這樣做對嗎?

事實上,Symfony2核心團隊正在使用:: class方法來添加表單字段類型,例如: $builder->add('name',TextType::class,array(...))因為Symfony v2.8我猜你做的方式沒什么不對。

更新:這允許您的IDE在鏈接的實體類命名空間發生更改時拋出異常,並且您將能夠在開發過程中識別此異常。 對於如何映射實體而不是將完全限定的命名空間甚至別名作為字符串,這絕對是“安全而不是抱歉”的方式。

是。 使用類引用總是比字符串refence更好。

使用字符串通常意味着有算法,將字符串轉換為類。

IDE也很合適。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM