2012-07-10 58 views
0

我開始新的項目爲我公司和它的要求下,一個域名託管多個應用程序。每個應用程序必須可以通過不同的子域(通配符)訪問。其中一個應用程序將成爲所有子應用程序的控制面板。由於子應用程序的複雜性,創建一個多模塊應用程序不是一種選擇。Zend框架 - 許多多個應用程序

所有應用程序必須共享公共庫,並訪問一些特定應用程式的。

我還在努力設計目錄結構,使存儲公共文件夾之外的每個應用程序,通過子域動態地訪問他們並單獨存放公用文件夾中的某些文件爲他們每個人。

我已經想通了,到目前爲止:

主機的默認目錄ZF結構中的每個應用程序在不同的目錄外的公衆。通過插件將文件從app公共目錄打印到瀏覽器(巫婆在域公共目錄之外),可以訪問公共文件。只有更改爲默認ZF應用程序的是,public_html中只有一個index.php文件可以基於子域啓動請求的應用程序。

domain_dir/ 
    controllPanel_app/ 
     application/ 
      configs/ 
      modules/ 
      layouts/ 
      Bootstrap.php 
     library/ 
     public/ 
    subApps/ 
     exampleSub_app/ 
      application/ 
      library/ 
      public/ 
     anotherExampleSub_app/ 
      application/ 
      ... 
    common/ 
     library/ 
      Zend/ 
      Other/ 
    public_html/ 
     index.php 

這是個好主意嗎?

+1

這聽起來很麻煩。您能詳細說明爲什麼您認爲子應用程序對於單個多模塊應用程序的工作過於複雜嗎?使用你的解決方案,你仍然會擁有相同數量的代碼,但是你必須通過大量的工作來實現它。 – 2012-07-10 22:12:13

+0

每個應用程序將爲不同的複雜移動應用程序的cms和web服務。不幸的是,我的英語技能超出了我的解釋範圍,但其中一些應用程序已經存在很多模塊,因此將其與其他應用程序混合在一起不是好主意另一個原因是寒意應用程序彼此無關,需要單獨工作。 – Adam 2012-07-10 22:22:04

回答

0

你能做到這一點,你建議的方式,但我認爲這將是更多的麻煩比它的價值。 Zend框架是爲模塊設計的,如果需要的話,但不是子應用程序。你可能最終會遇到一個Zend Router惡夢,或者一些複雜的詭計,這兩者都很難維護。

爲什麼沒有爲您的控制面板爲每個子域一個完全獨立的Zend框架應用程序,而另一個單獨的應用程序?您的公司(或您自己)應該能夠重新配置您的HTTP服務器,以便每個子域可以擁有自己的文檔根目錄。我爲我自己的公司做這件事,情況與此類似。 (普通控制面板應用具有不同的面向公衆的應用爲不同的目的,以及具有共享代碼公用庫。)

可以以多種方式共享公共庫文件夾。一種是如果每個應用都將該文件夾添加到其每個應用的index.phpBootstrap.php文件中的PHP include_path。我更喜歡這樣做。另一種方式是通過每個應用程序的library文件夾中的符號鏈接。