2012-08-30 31 views
0

將Symfony2用於我的結構之一。我想保留與其他模塊文件相關的模塊和各種與模塊相關的文件。Symfony2確認應用程序和模塊的自定義文件夾結構

因此,例如。我有前端應用程序。在前端應用程序下,我有用戶,圖庫模塊。我想將與用戶相關的所有文件保存在一個地方,並將與畫廊相關的所有文件保存在一個地方。這樣我就可以在Symfony1.4中提供模塊級的抽象。

以下是我在此達到的文件夾結構。

web/ 
     admin.php 
     frontend.php 

    apps/ 
     autoload.php # this autloads the common libaries/vendors for all application eg. CommonBundle 
     admin/ 
       AppKernel.php 
       AppAutoload.php # load application specific libraries 
       bootstrap.php.cache 
       config/ 
       cache/ 
       . 
       . 
       . 
      frontend/ 
       AppKernel.php 
       AppAutoload.php 
       bootstrap.php.cache 
       config/ 
       cache/ 
       . 
       . 
       . 

    src/ 
     Admin/ 
      UserBundle/ 
       Controller/ 
        UsersController.php 
       Entity/ 
        User.php 
       Repository/ 
        UserRepository.php 
       Resources/ 
        views/ 
        indexUserView.twig.html 
      DiaryBundle/ 
       Controller/ 
        DiaryController.php 
       Entity/ 
        Diary.php 
       Repository/ 
        DiaryRepository.php 
       Resources/ 
        views/ 
        indexDiaryView.twig.html 
     Frontend/ 
      UserBundle/ 
       Controller/ 
        UsersController.php 
       Entity/ 
        User.php 
       Repository/ 
        UserRepository.php 
       Resources/ 
        views/ 
        indexUserView.twig.html 
      DiaryBundle/ 
       Controller/ 
        DiaryController.php 
       Entity/ 
        Diary.php 
       Repository/ 
        DiaryRepository.php 
       Resources/ 
        views/ 
        indexDiaryView.twig.html 

我對上述文件夾結構很有信心。但是,當我發現Symfony2社區支持在應用程序級創建Bundle而不是在模塊級時,我想知道在模塊級創建Bundle的優點和缺點。在模塊級別創建可能的陷阱是什麼?

我可以看到具有用於模塊

  1. 所有控制器,視圖模塊的模型是相同位置,並且從抽象控制器其他模塊,模型,視圖束的許多優點。這樣的人在一個模塊上的工作有一個文件夾內只工作,不操心人的工作正在進行中模塊2即bundle2中

  2. 清除緩存可以在應用層面發生使用以下命令清除緩存的只是前端應用

    shell> php apps/frontend/console cache:clear

  3. 如果您需要在前端應用程序中創建一個包,那麼命令如下所示。它在src/frontend應用程序下創建UserBundle。它還在apps/frontend/AppKernel.php中註冊了軟件包名稱。

    shell> php apps/frontend/console generate:bundle --namespace=frontend/userBundle --format=yml

所以一切似乎罰款。但是,似乎Symfony2社區並不認爲這種方法是正確的?

請在我的方法中建議循環孔?

回答

1

我認爲你不應該這樣做......

有沒有這樣的事情module在Symfony2中。有一本食譜 article,它解釋了Symfony2和symfony1之間的區別。我想你在談論不同的應用程序。你可以有不同的應用程序,但它不是recommended,你應該創建另一個項目並共享包。

我認爲你想實現的這個項目會打破很多東西,你將無法再使用第三方軟件包。

有/有一個倡議叫KnpRad使Symfony2的項目結構更加RAD友好,但他們有很多問題,這個項目似乎現在已經死了。從他們的blog

報價:

在目前的實現,Symfony2中已經硬編碼路徑捆綁資源幾乎無處不在。這意味着,爲了更改文件夾結構,我們需要覆蓋所有Symfony2命令,擴展和編譯器通行證。它在我們的代碼庫中創造了一個鴻溝,並在一些捆綁中引入了BC休息。

0

neetu .. Symfony1.4和symfony2有很大的區別。根據symfony2你需要在src文件夾下生成你的應用程序,這裏的應用程序名稱應該是命名空間,並且你可以在命名空間下創建在symfony1.4中被稱爲module的bundle。 命令:

PHP應用程序/控制檯產生:捆綁--namespace = Yournamespace/yourBundle --format =陽明 PHP應用程序/控制檯高速緩存:明確--env =督促--no調試 可以根據您的需要創建應用程序。

相關問題