2013-05-01 26 views
0

我有用PHP文件編寫的整個應用程序。每個文件自己處理操作,數據庫訪問和html打印。多年過去了,我瞭解了MVC,框架等。我準備轉售這個應用程序並進行一些改進,其中大部分都是可視的,但我們正在談論將近70個文件進行編輯!從單個PHP腳本中查看單獨的代碼

是否有辦法,例如,將每個文件分隔到控制器和視圖中,以便我可以更清晰地編輯視圖?另外,這樣做可以讓我遷移到CodeIgniter。

+0

你可以使用http://www.smarty.net這是一個非常容易使用的模板系統,這將有助於保持服務器端邏輯與html分離 – 2013-05-01 00:37:55

+0

如果你正在考慮遷移,那麼看看[laravel] (http://laravel.com/)或[laravel4](http://four.laravel.com)。 – 2013-05-01 02:22:04

回答

2

PHP已經是模板語言。你應該用什麼來創建simple templates而不需要任何花哨的第三方工具。這會讓你將HTML與其他代碼分開。

此外,我會建議將數據庫交互與您的應用程序核心邏輯分開。

如果你有一個工作的應用程序,那麼不要在它之上拍一個框架。框架是提高初始開發速度的工具。但該應用程序已經在那裏。現在你只會得到一個框架的缺點,沒有任何好處。

至於MVC,它是一個建築設計模式。框架不實現MVC。你的代碼確實(或不)。要理解MVC,您首先需要對OOP原理和實踐(SOLID,SoC,LoD,DI)有很好的理解。僅僅因爲你添加了一個框架,它不會神奇地「添加mvc」到你的代碼中。這不是某種醬。

最後,我強烈建議您遠離CodeIgniter和CakePHP。他們是PHP中兩個最糟糕的框架。它們包含許多不良做法,例如:全局狀態,php4工件,構造函數中的計算,模式錯誤以及關注點分離。

他們沒有實現MVC或任何MVC風格的設計模式,相反他們只是糟糕的Rails重寫的PHP。

+0

沒有試圖將它變成一個框架辯論或任何東西,但我傾向於認爲將CakePHP 2.x用作完整的堆棧框架是MVC設計模式的令人滿意的例子。早期版本不是很多。 – dcd0181 2013-05-01 07:24:49

+0

@ dcd018你知道MVC設計模式中控制器的職責是什麼嗎?視圖實例如何?看看它。然後將它與蛋糕文檔一直在餵養你的東西進行比較。 – 2013-05-01 07:46:39

+0

讓我換一個令人滿意的MVC表示,因爲技術上你是對的,Cake不會將視圖看作對象,而是作爲將所有顯示邏輯留給控制器的模板,至少這是我的理解。在我看來,最多是MVC設計模式的一半體面代表。 – dcd0181 2013-05-01 08:17:55