2012-06-26 18 views
0

我使用CodeIgniter 2.1.1並使用兩種環境(生產和測試)構建網站。實質上,一開始,兩種環境都具有相同的程序邏輯。但是現在有幾個修改要做。如何在CI中的兩個應用程序之間共享控制器和模型?

這個想法是共享生產環境和測試環境的控制器和模型,但對於這兩種環境都有不同的看法。

我已經設置了WAMP,並在WWW目錄中有兩個單獨的文件夾:一個用於測試,另一個用於生產。每個文件夾下都有控制器,模型,視圖等。 CI被適當指出並設置了基本URL。

我的問題是,當我在Web瀏覽器中鍵入URL來調用測試環境的控制器時,它應該重定向並調用生產環境的控制器。那可能嗎 ?

+0

我正在刪除'mvc'標籤。它與MVC無關,只與CodeIgniter特定的東西有關。這就是說,你的描述有點混亂。通常,測試,暫存,開發和生產環境是在不同位置(如:不同服務器或子域)中** **相同​​*代碼庫的分離部署。也許有不同的配置。它不是同一代碼庫中代碼的複製粘貼部分。你究竟想要做什麼? –

回答

1

沒有重定向。它包含文件,而不是。

假設你有這樣的文件結構:

www-root 
|-production 
| |-application 
| | |-controllers 
| | |-etc. 
| |-etc. 
| 
|-test 
| |-application 
| | |-controllers 
| | |-etc. 
| |-etc. 
| 

與正好在兩個環境中相同的名稱創建一個文件。我們的例子會說controller.php。在生產環境中,做你的編碼。在您的測試環境,包括這一行,只有這條線:

<?php include '../../../production/application/controllers/controller.php'; 

這應該從您的生產環境中的文件拉進你的測試環境。只要確保你的硬編碼任何鏈接,使他們相對而不是絕對的。這種方式當它被拉進你的測試環境時,它會引用你的測試資產,而不是你的測試資產。

這是未經測試的,因爲我現在無法訪問我的CI安裝。讓我知道結果如何。

0

我建議你最終設置一些類型的版本控制,比如Git。您可以編輯測試環境並將更改推送到生產環境。

要回答您的問題,您可以通過設置符號鏈接在兩個不同的應用程序之間共享模型和控制器。我已經在linux中完成了它,但它在Windows中應該是一樣的。所以,假設你想讓實際的文件進入測試應用程序。把所有的PHP文件放在測試應用程序的控制器和模型目錄中。不要在生產應用程序中創建控制器和模型目錄,只需創建測試應用程序各自目錄的符號鏈接。

相關問題