2011-10-12 13 views
0

我正在尋找減少整個網站共享的代碼冗餘。我已經修改了幾個框架,但不能想到任何允許您輕鬆地將框架代碼與網站代碼分離的同時將其分享到多個網站。哪些PHP框架的代碼庫可以輕鬆跨整個獨立站點共享?

什麼PHP框架可以輕鬆地做到這一點?

編輯 - 我試圖確定哪些框架是最容易分享的。我已經猜測幾乎所有的東西都可以共享,但哪些框架適合共享?這聽起來像Yii建議將框架代碼放在站點代碼之外,這是一個好的開始。

如果有人在網站上共享相同的框架代碼,我很想知道這一點。

+1

其中許多人確實。即使是我的(如在我自己的自制框架中)。 – BoltClock

+0

感謝您提供了很多很棒的快速解答! – ghbarratt

回答

1

許多人都可以做到這一點。例如YII應該安裝在您的www根目錄(httpdocs,/var/www/或類似的東西)之外。您可以使用多個站點來指向該基本目錄。

任何框架(或部分),不需要特定的設置爲您的網站可以在多個網站之間共享我猜。

1

我相信Zend可以做你所要求的,甚至可能是Symfony和Fuel,我相信很多其他的框架可以讓你選擇使用它的哪些部分可以讓你做到這一點。

但是,這樣做需要您進行一些配置才能使其全部運行。這就是爲什麼我最終創建了自己的框架。

0

我想不出任何本地完成此操作的框架,但您可以使用多個SVN(或hg等)存儲庫來完成此操作。使用CakePHP的示例:

  • 1 repo擁有CakePHP默認文件。如果您想更新CakePHP, 您將來更新此回購。
  • 每個網站有1個存儲庫,用於存儲應用程序文件夾中的所有內容。


它沒有內置功能,但它也不是很難設置。

1

Symfony2的是適合您的需求。這是一個包含大量獨立組件的完整堆棧框架。它與「捆綁」一起工作,捆綁包是一種具有完整邏輯(控制器,模型對象,視圖,資產,配置等)的容器。這意味着您可以編寫一個捆綁包,並且可以毫無問題地重用它。

但是你也可以考慮symfony 1.4。一個項目可以處理許多應用程序,因此您的模型在這些應用程序之間共享,並且相同的代碼可以在所有應用程序中重用注意應用程序可以是一個完整的網站。

3

用Fuel(http://fuelphp.com)這麼做很容易。

每個網站都有一些地方的路徑定義的index.php文件:

/** 
* Set all the paths here 
*/ 
$app_path  = '../fuel/app/'; 
$package_path = '../fuel/packages/'; 
$core_path  = '../fuel/core/'; 

正如你所看到的,你可以共享一箇中央存儲庫的核心和包,並創建一個單一的應用程序和公共文件夾到每個網站。

您甚至可以通過在.htaccess中設置不同的環境,與不同的網站共享一個應用程序來定製東西(比方說,網站標題或使用的數據庫)。例如,開發/舞臺/製作網站可以直接使用,但可以擴展到任何事物。您也可以設置中央軟件包以在多個應用程序中使用。功能強大,簡單,只需工作。

+0

謝謝,我將不得不看燃料。這是我沒有太多經驗的,是。 – ghbarratt

相關問題