簡體   English   中英

沒有PHP經驗的人應該使用像CakePHP或Symfony這樣的框架嗎?

[英]Should someone with no PHP experience use a framework like CakePHP or Symfony?

我有一個簡單的開發網站,我想學習PHP。 我希望該網站安全,可擴展且易於維護。 我應該同時學習框架和PHP嗎? 如果我構建一個框架,將會有許多不熟悉的代碼。 你會說這增加了安全隱患嗎?

沒有什么比使用會妨礙你學習PHP的框架,並且使用已建立的框架將降低安全風險,因為你將處理經過良好測試的代碼來處理常見任務。

如今,大多數PHP框架的核心是這個簡單的三步工作流程

  1. 請求URL並通過中央引導程序index.php文件進行路由

  2. URL名稱用於派生類名和方法名稱(以及操作方法)。 這是您的主要入口點,您開始編寫PHP來處理請求

  3. 在此方法結束時,控制權將移交給視圖模板,該模板可以訪問您在第二步中設置的某些值。

選擇一個框架,了解它是如何做到的,然后在action方法和視圖模板中編寫你想要的任何類型的PHP。

是的,會有很多其他PHP框架代碼在運行,但你永遠不必看它。

是的,該框架將具有多種功能和/或用於處理事物的“首選”方式,但您只需要使用您立即理解的那些。

當您開始注意丑陋,無聊或不安全的代碼模式時,請再次查看框架功能。 在“做錯了”之后,你會更多地了解框架代碼為什么以特定的方式做某事並且你會很樂意放棄責任(我會說ActiveRecord樣式模型與SQL代碼有關)這里很重要)

當您開始使用面向對象的系統時,框架會讓您開始對他們如何做某些事情感興趣,然后您可以開始探索核心框架代碼。

絕對。 Frameworks將為您完成所有樣板代碼,為您提供更高級別的抽象。 如果不處理PHP的某些特性,您可能更容易編碼。

任何一半體面的框架也會解決安全問題,因此如果您不熟悉該語言,那么您在框架上編寫的應用程序可能比您從頭開始編寫的應用程序更安全。

我不建議從開始開發人員的框架開始。 如果您對其他OOP語言有很多經驗,那么應該沒有問題。 但是在考慮使用框架之前,你至少應該知道基礎知識(例如語法)。

我會說這取決於你以前的經驗。 它本身並不是PHP本身,但它所居住的Web服務器環境可能會分散注意力。 如果您已經熟悉HTTP請求生命周期並且以與使用PHP類似的無狀態方式編寫Web應用程序,則不應該在使用框架時遇到大問題。

如果您來自“有狀態”背景或根本沒有背景,框架提供的抽象可能會成為一個問題。 你應該至少知道如何在通過PHP從框架中抽象出詳細信息之前在普通PHP中處理會話,cookie,頭文件, $_POST等。 另見我之前的答案

我認為,如果您對創建安全系統(尤其是身份驗證等)的能力沒有信心,那么盡量減少您編寫的自定義代碼的數量可能是一件好事。 因此,我認為以這種方式使用Web框架對您有利。 它還可以讓您熟悉語言的核心,而無需擔心外圍問題。

我已經看到一些人(具有大量的OOP知識)同時學習PHP和symfony沒有困難。

事實上,從PHP轉向面向對象的語言只是學習一些概念性的東西以及PHP本身的語法和API。

在我看來,在學習語言的同時學習框架並沒有錯。 已經有相當多的情況需要這種情況。 例如,大多數學習Objective-C的人同時學習Cocoa框架,大多數C#程序員都會學習.Net,甚至JDK也應該被認為是一個與Java語言一起學習的框架。 為了它的價值,我事先學會了很少的PHP經驗的Symfony框架。

我建議你從w3schools.com上的PHP turorial開始。 它簡短明了。 您可以在一到兩個小時內學習所有必要的基礎知識。 為了理解您需要的任何框架。 然后從CakePHP cookbook學習第一章和第二章,並使用他們的教程創建您的第一個CakePHP應用程序。 其余的我同意艾倫風暴。

開始使用PHP框架,也取決於您是否具有一些先前的編程經驗,如果是,那是什么類型的。

如果你在其他一些編程語言如java,c中混淆,在創建你的網站時同時學習一個php框架可能不會太困難。

您將遇到的幾乎所有PHP框架都使用MVC設計模式 - 如果您了解MVC的基礎知識,如果您已經在其他編程語言中實現或具有設計模式的要點,那么從PHP框架開始將非常容易。

您選擇的PHP框架也是決定性因素。 如果您使用像Codeigniter,Yii這樣的PHP框架,甚至可能使用相對較小的學習曲線的CakePHP,您將在PHP中找到適合您的路徑。 雖然如果選擇像Symfony,Zend這樣的框架 - 你可能會因為花費太多時間做一些簡單的事情而感到沮喪,反過來又會炸毀你的項目。

至於關於安全風險的部分,我上面提到的所有框架以及我未提及的其他一些框架都在舞台上花了足夠的時間來壓制安全風險。

希望這有助於決定。

雖然我是框架的粉絲,但我同意上面的一些其他評論。 從框架開始可能會非常混亂,特別是如果您沒有模型視圖控制器(MVC)面向對象編程(OOP)理論的經驗。

說實話,我發現在我的日子里有很多未完成的框架項目,而不是沒有框架的應用程序。 如果您的應用程序是用一些笨重的PHP編寫的並且應用程序起飛,那么您可以雇用必要的資源來移動到框架並開發它以承受大量使用並有效地利用資源。

我的建議是首先掌握PHP,然后轉移到框架。 我對此的最后一點說明,許多框架也存在缺陷 - 因此,根據您的應用程序需求,應用錯誤的框架可能會將其推向基礎。

只需要我2美分就可以成功發布幾個企業應用程序 - 而不使用PHP框架。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM