2012-01-08 44 views
1

我有一個項目,我接手了。它是一個使用PHP和MySQL構建多年的應用程序。在現有項目中集成CakePHP或CodeIgniter

它目前有一種很好的文件夾結構,但代碼本身寫得很差。 幾乎每個文件都有php,sql語句和html代碼。 有沒有理由使用PHP回聲生成的JavaScript代碼等。

我想用於CakePHP或CodeIgniter的進一步開發,即使這意味着對於新功能,將會在舊代碼中編寫一些已存在的代碼(例如:也許是實用程序功能)。

是否有可能將這些框架之一集成到現有的應用程序? 哪一個更容易? 你有什麼關於如何做的鏈接?

謝謝。

回答

2

我對CakePHP的經驗很少,所以我的答案是關於CodeIgniter。我和CakePHP一起玩了大約一天,那是差不多兩年前的事。在我看來,它可能會更容易與CodeIgniter集成,雖然更熟悉CakePHP的人可能會證明我錯了。

這是我會採取的方法。我從來沒有這樣做過,但它似乎是解決問題的合理方法。我想這種方法也適用於CakePHP。

  1. 首先,從一個新的CodeIgniter安裝使用最新版本開始。

  2. 接下來,創建鏡像當前應用程序結構的控制器和操作(控制器方法)。例如,如果您有一個網址爲http://example.com/users/view的頁面,您可以使用view()方法創建一個Users控制器。

  3. 接下來,爲應用程序的每個當前文件創建視圖文件,並通過適當的控制器方法加載它們。這裏的目標是讓應用程序使用CodeIgniter的路由系統工作,儘管此時您不會使用任何模型,庫或幫助程序。

  4. 將應用程序置於CodeIgniter之上後,開始重構它以適應MVC模式。從視圖文件中提取應用程序邏輯(查詢,表單處理等),並將它們放入控制器中。在視圖中保留所有表示邏輯和HTML。

  5. 接下來,重構控制器。這是棘手的地方,因爲控制器代碼可以放入模型,庫或其他控制器方法中。一個好的起點是將所有的查詢都放入合適的模型中。比較你的控制器,看看是否有任何代碼重複。這是一個好兆頭,您應該將其從控制器中移除並放置在其他位置。不幸的是我不能告訴你在哪裏,因爲它在每種情況下都有所不同。

  6. 繼續重構你的應用程序,直到你有一個可行的狀態,你很滿意...

希望這會有所幫助。我當然錯過了一些關鍵的步驟,例如設置和配置CodeIgniter,但如果您認真對待這個問題,我強烈建議您閱讀CodeIgniter User Guide以瞭解它的工作原理。如果您還不熟悉,還應該熟悉MVC(模型 - 視圖 - 控制器)。

這裏並沒有真正適合所有人的解決方案,但希望我已經給了你一些想法或者至少有一個跳板的起點。如果您有任何疑問或有點困惑,請在下面留言,我會盡快與您聯繫。

0

在我看來,在CodeIgniter(我從來沒有使用CakePHP)和模型編寫控制器比直接複製粘貼和一些調整視圖更容易。

+0

謝謝。但我如何整合舊的部分(沒有框架)和新的(與框架)。我想我需要改變框架的index.php。 – memical 2012-01-08 15:17:29

+0

忘掉index.php和其他。只需帶上你的函數/類,並在codeigniter中創建新的控制器,試圖使用舊的代碼,這將做舊的應用程序。 – Alex 2012-01-08 15:24:06

+0

請記住您的普通文件系統位於根目錄中。將codigniter放入根目錄中,並按照需要構建的方式構建網站。只是不要實現index.php文件(在根目錄中)或鏈接,直到你準備好了。準備就緒後,將主控制器放入路由中,移除整個原始文件系統並以代碼方式處理系統 – Brad 2012-01-08 22:14:48

相關問題