2012-01-27 69 views
1

這對任何建議都開放,並且想知道Zend Framework用戶是否可以幫助我解決這個問題。大型多站點zend項目構想

我使用Zend框架構建了中型數據庫驅動的網站,可以看到它是一個非常強大的框架。

然而,從查看與StackExchange.com一樣大的東西,想知道如何使用zend實現一個多站點項目,並且能夠創建一個'main'網站,該網站可以使用配置簡單地複製並且可以持有不同的域名,但具有某些功能擴展。

我沒有意思,複製網站和鏈接到相同的框架,但使用框架,擴展主要網站(stackexchange.com)有像功能的主要論壇,但創建一個完整的單獨網站(它可以在需要時具有相同的功能或更多功能。

我問的原因是因爲我沒有印象,stackexchange開發人員每次都必須重建一個站點,我也不相信他們有79個站點副本,鏈接到一個或多個框架庫。

如果任何堆棧溢出開發人員或zend極客可以擺脫這一點,我會是一個快樂的傢伙。

謝謝!

+0

使用curl()從一個單獨的網站獲得結果,然後可以將其保存到變量中,並重新格式化爲其他網站可能是一個選項。 – HenryGuy 2012-01-27 20:53:51

回答

1

可以通過使用hostname routes來實現服務多個(子)域的單個應用程序 - 不僅僅是Zend庫的單個副本。

在DNS和虛擬主機級別,所有域映射到一個public文件夾。那裏的.htaccess通過index.php推送所有請求。這index.php指向一個APPLICATION_PATH。在引導時,可以使用主機名路由來標識發出請求的域。帶有routeShutdown()掛鉤的前端控制器插件可以讀取其他主機名特定的配置,並執行其他主機名特定的操作(例如,設置佈局)。

+0

謝謝,這是我心中所想,但不知道如何去做。乾杯。 – 2012-01-28 13:33:52

0

我相信模塊化方法在這裏最適合。

我認爲David Weinraub在使用前端控制器routeshutdown() hook方面有一個很好的方法 - 我也會這樣做,但是使用它來設置默認模塊,例如, www.site1.com將查看site1模塊的服務內容 - 這擴展了Core模塊。

我最好安裝在一個類似的方式向下面的應用程序:

|Project 
    |-Application 
     |-configs 
     |-controllers 
     |-models 
     |-modules 
      |-core 
      |-site1 
      |-site2 
      |-site3 
     |-views 
     |-Bootstrap.php 
    |-Docs 
    |-Library 
    |-Public 
    |-.zfproject.xml 

使用Core模塊中,「子網站」將從Core模塊擴展控制器,並提供你的功能尋找

'它可以在需要的地方具有相同的特徵或更多。