2016-09-23 59 views
2

在我的Symfony 3應用程序我有幾個類,做一些任務,例如計算量,尋找物品,命名目錄...Symfony的包目錄結構 - 在那裏把服務類

目前,他們正在所有的服務目錄,所以目錄結構看起來是這樣的:

- AppBundle 
-- Controller 
-- Entity 
-- Form 
-- Service 
    -- LiveStatsCalculator.php 
    -- DirectoryNamer.php 
    -- AdvertisementPlayCalendarFactory.php 
    -- MediaConfigGenerator.php 
    ... 

這是好辦法,還是應該分開的目錄,基於任務類負責? 例如:

- AppBundle 
-- Controller 
-- Calculator 
    -- LiveStatsCalculator.php 
-- Entity 
-- Factory 
    -- AdvertisementPlayCalendarFactory.php 
-- Form 
-- Namer 
    -- DirectoryNamer.php 

或者,也許還有更好的解決方案? :)

+1

第一種方法沒關係。 –

+1

我將所有服務都保存在'經理'目錄中。但是如果我需要更多的話,那麼我就把它放到'經理/消息'目錄中,這個任務類型就像MessageFactory,MessageBuilder一樣。但這一切都由您自行決定。第一種方法是可以的。 –

+0

a-ha,你的答案的tnx @StephanYamilov你的方法是我計劃在未來實現的,當服務類的數量增加時 –

回答

2

學習框架最佳實踐的最簡單方法是查看內部框架包的組織方式。

即你可以去github上爲symfony/framework-bundlehttps://github.com/symfony/framework-bundle

他們負責爲基礎的命名解決方案,它是合理的。將所有服務存儲在單個名稱空間中將最終將您的服務轉換爲垃圾箱。或者,您最終將名稱空間拆分爲Services namepsace。我認爲這不是你想要結束的。

有意義的名字和locaiton總是首選。

+0

基於責任的命名解決方案在20,30或更多的服務類別中有意義 但是當您有5或6個服務類別時,認爲它不必要地增加了更多的複雜性 –

+1

如果你有5-6個類 - 我懷疑你甚至需要'服務'命名空間。看,例如'symfony/property-acess'命名空間佈局https://github.com/symfony/property-access – ScayTrase