4

我是一個愛好開發人員,這意味着我在一邊做,而不是經常這樣做。我一直在閱讀關於Web應用程序框架的內容,並在CakePHP和CodeIgniter之間尋找。我終於決定進一步深入CakePHP,因爲它似乎更像我的衚衕。PHP:應用程序框架問題(供討論使用)

問題是,我越深入越多,我不明白爲什麼我使用框架。所以,鐵桿開發人員在那裏,與我討論,或幫助我瞭解以下內容:

我明白在長期運行的應用程序框架有助於更快地部署代碼或更快地編寫代碼。然而,可以理解的是,這些框架的侷限性在於你必須根據框架的標準進行編碼?我越來越多地嘗試使用CakePHP,這幾乎就像我必須在實際編程語言之上學習框架語言/標準一樣。例如,我不得不學習CakePHP的標準和方法來實現「更快」的部署和解釋,但我也試圖編碼到PHP標準(這有點內置到CakePHP中),但作爲一個整體,這就是我看到了。對我而言,這是一個開銷,但如果你知道CakePHP或者你選擇的框架,這沒什麼,因爲你可能知道如何編寫你的框架?

另一個問題或討論是,作爲開發人員和喜歡MVC方法的人員,但並不真正知道如何使用框架實現它,最好的方法是使用與我一樣的代碼(通過函數文件),製作我自己的函數等,但也使用MVC技術?我的意思是,我不應該學習一個應用程序框架,而應該將內容樣式與MVC作品等功能分開,但使用我自己的功能,或者我應該學習一個應用程序框架。

注意:我可能會錯誤地討論應用程序框架,但我不確定。另外,這是爲了討論而不是咆哮;我不知道我不知道什麼,所以我實際上正在尋求澄清。

謝謝!

+0

您可能想要閱讀右側欄中提供的一些相關問題。雖然他們可能不完全重複,但他們可能會回答一些你甚至不知道你有的問題。 – Matthew 2011-03-21 23:44:35

+0

框架不僅可以減少編寫的代碼量,還可以讓您在庫中進行1個簡單的錯誤修復,並且這在整個解決方案中都會有效。它關於可持續性和可重用性, – RobertPitt 2011-03-21 23:48:20

+0

@konforce:我會這樣做的。 @RobertPitt:這就是我正在談論的並需要反饋;感謝這一點。試圖掌握好處,以便最終將我的oldschool functions.php文件轉換爲MVC/Framework解決方案。 – drewrockshard 2011-03-22 16:06:10

回答

1

我認爲這裏有一點需要記住:要通過某種工具提高工作效率,您需要先學習如何使用該工具。你知道如何走路,你可以在一個小時內從A點到B點。如果你想更快地到達那裏,你需要學習如何駕駛,而那些花在學習如何駕駛的日子本來可以用來行走。但是一旦你知道如何駕駛,你就會更有效率。

這就像是與框架 - 汽車是框架。

隨着框架的整體,它們被用來緩解和加速開發過程。要應用DRY原則,爲您提供強大的基本工具(文本處理,輸入管理,表單驗證,電子郵件和會話處理等),以便您可以立即處理它們,以阻止您重新發明輪子。我曾經使用過一個框架,但是一旦我掌握了這個框架,根據我的經驗,這是我不能放過的東西。

我不認爲這是一個限制(因爲它們是可擴展的),我認爲它更像是一種「個人標準」 - 一種方式,這些應用程序應該被寫入,就像你創建時那樣你自己的圖書館。一旦你知道並且熱愛你的框架,那個魔法消耗就會消失。

關於MVC,我不會使用「should」這個詞,但它絕對是一個很好的選擇,不管你做什麼 - 如果你使用框架,很好,如果你不這樣做,但你分開商務邏輯來自內容,太棒了!這是關於你感覺舒適的一切。 Grid Frameworks,CSS Resets,庫使用等都會發生同樣的事情 - 這是一個選擇問題。我的是什麼?使用這些工具是因爲它們在那裏供您使用並製作健壯的應用程序和網站。他們經過反覆測試,他們工作,他們幫助你不重複自己或重新發明輪子(已經做了一千次)。 MVC對於可伸縮性和維護也非常有用。

我的建議是學習框架。有一個原因是你選擇Cake over Codeigniter(不知道爲什麼,但Codeigniter用戶在這裏!),所以堅持下來,並使用它一段時間。它們都很強大,但是從開始就不能完全看到它的全部潛力。

另外,最後一兩件事:因爲所有的應用程序都準時的用途,你總是會創建庫,不管是什麼,以及這些框架使得它很容易創建,使用和十個分量他們。所以你可以混合使用所有這些,以及框架的所有後端功能。

繼續嘗試 - 你不會後悔的!

不過我的兩分錢。

+0

此外,我會建議,如果你是一個使用你的語言的begginer,不要使用框架。深入瞭解基礎知識,編寫一些代碼,熟悉一下,然後深入框架。如果不這樣做,你會錯過很多。 – AeroCross 2011-03-21 23:46:37

+0

這是一些真正的好輸入。由於其他人越來越多地提到CodeIgniter,我可能會進一步深入。我之所以選擇CakePHP是因爲我認爲更多的人使用它,而且因爲我只是網站開發中最懶惰的人,所以我傾向於「順其自然」,然後在我有信心時分手。所以,在這些方面,我可能會看到CodeIgniter更遠一點。 – drewrockshard 2011-03-22 01:20:46

0

MVC的原則通常是使用面向對象的編程來實現的,但它完全可以讓你利用過程式編程的概念。這是Drupal的大部分工作原理。

我已經使用了幾個不同的框架,也寫我自己的。我更願意使用自己的設計和實現進行全面控制。我也以一種可以在衆多項目中使用核心代碼的方式編寫它。我還需要爲當前的版權所有權問題項目。開發商,我的工作用笨併發誓買

我組,我只用它來愚弄和從未與它的網站。但我更喜歡CakePHP。在學習使用CakePHP時,我經歷了很多核心代碼來弄清楚如何做某些事情,並決定即使是最簡單的請求也不需要那麼多的開銷。

自己做是一個很好的學習經驗。很多人認爲它應該只是一個學習經驗,並不是用於現實世界,但我不同意。一般框架非常適合快速原型設計,但我個人更喜歡對系統進行更多的控制。那裏有其他MVC框架,也可能看看它們。

我始終不同意討論一些框架設計使,但你至少應該瞭解爲什麼他們做了這樣的說法,因爲它會教你的東西。

沒有什麼「錯誤」的使用功能做,但有人只是(在過去的一年)做了開關PHP程序編程PHP OOP;面向對象是要走的路。我想我應該提到我對OOP並不陌生,只是在PHP中興奮。但它仍然不難學習。

的代碼,我再利用,以及它是多麼簡單創建新頁面的數量是值得花費來獲得新的東西了與我的老辦法相提並論的時間。

+0

感謝您的建議。我正在考慮分支到OOP中,因爲它似乎對所有事情有更多的控制權,而不是將所有內容都放入一個大規模的functions.php文件中。 – drewrockshard 2011-03-22 01:21:29

+0

是的,那是什麼使我對它。對於每個頁面加載,加載的唯一數據是執行請求的操作所需的代碼 – dbers 2011-03-23 02:32:36

+0

嗯,我想我會更多地關注CodeIgniter,以查看差異並從這裏找出差異。 – drewrockshard 2011-03-26 03:20:41