2016-08-02 68 views
-1

我們正在嘗試運行幾個共享大約90%代碼的站點。業務領域是相同的,但他們的用戶界面有點不同。因此他們將有不同的CSS。具有不同用戶界面的共享代碼庫

您將如何管理代碼庫以共享需要它的代碼?

+0

對不起,但您已將您的問題標記爲架構。如果一切都一樣,但UI有什麼架構問題?像如何「包含()」相關的「共享」代碼庫?目前所寫的所有內容都是一個沒有足夠背景的問題...... – kayess

+0

@ close-vot這聽起來很寬泛,但實際上具體到足以應答。檢查[這裏](http://meta.stackoverflow.com/a/323828/576767)。有關標籤是不同的,但原則是相同的。共享代碼是PHP生態系統方面的一個特殊問題。 –

回答

1

兩種常規方法

  • 結構的共享部分作爲作曲家包

例如,所有的應用程序級別的代碼,如路由器,依賴管理,驗證,域實體映射可管理如Composer依賴關係通過Packagist。如果代碼不可打開,可以使用專用回購作爲依賴關係。

然後,您將爲每個站點設置不同的回購站點,並使用Composer構建相同的部件,並僅對實際不同的部件進行編碼。你可能有兩臺服務器,用於不同的域。

這意味着通過Composer和代碼進行更多配置。

 
repo 1 
    /app 
     /viewSpecificToOne 
    /public 
     /cssSpecificToOne 
     /jsSpecificToOne 
     index.php 
    /vendor 
     /[dependencies installed through composer] 
repo 2 
    /app 
     /viewSpecificToTwo 
    /public 
     /cssSpecificToTwo 
     /jsSpecificToTwo 
     index.php 
    /vendor 
     /[dependencies installed through composer] 
  • 管理來自同一回購

這是接近其他解決方案的所有網站,但你會在不同的路線發送到不同的前端控制器,誰也使用相同的域映射器,驗證,路由器等,但有兩個不同的視圖層,這將具有特定的代碼。

這意味着從服務器提供更多配置以服務來自兩個公共回購站的每個域。

 
Repo 
    /app 
     /view1 
      /viewLogicSpecificToOne 
     /view2 
      /viewLogicSpecificToTwo 
    /public1 
     /cssSpecificToOne 
     /jsSpecificToOne 
     index.php 
    /public2 
     /cssSpecificToTwo 
     /jsSpecificToTwo 
     index.php 
    /lib 
     /sharedPackages