首頁 後端開發 php教程 为什么我要使用自己编写的框架(而且你也应该)

为什么我要使用自己编写的框架(而且你也应该)

Jun 20, 2016 pm 12:26 PM

Photo by Anton Repponen​

注:本篇文章主要是针对有经验的开发者,尽管本文内容适用性很广,但我并不建议所有人都去创建并维护自己的框架,除非你很清楚自己在干什么。

在我们 PHP 社区,开发者的身份通常与这门语言和所采用的框架紧密地绑定在一起。说不清是好还是坏,我们的职业生涯也与某一技术平台紧密相连,同时还投入了大量的精力在这个平台及其文化和支持工具上。

然而,相比编程语言本身,工具的生命周期要短的多。在 PHP 社区中,有无数的框架涌现然后消逝,将来还会有更多的框架出现、流行,最后淡出视野。这是事物的自然规律。

这其实没什么大不了,因为框架本身并不重要,重要的是蕴含在框架之内,在开发实践中我们所信奉的一系列原则。

框架代表了一种固执己见的软件开发方法,框架维护者通过框架给出了软件应该是什么样子的一个范例。而使用者,无论是出于义务还是认同,他们信奉并采用了框架维护者的这种开发哲学。

但我们今天接受的范例可能在未来被新的所取代,所以框架总是不断更替。

在多年尝试寻找最好的框架未果后,我认识到对我来说真正重要的不是正确的范例,而是正确的实践。正因为如此,我意识到我需要开发、维护和使用我自己的框架,一个能代表我所信奉的一系列原则而不是某一特定时刻非常有用的各类范例的框架。

老实说,将我自己使用的骨架代码称之为框架多少有点难为情,因为大部分的核心功能都不是我自己实现的。事实上,我采用了许多其他的包,这些包所代表的最佳实践非常有用。我自己的框架扮演了“胶水”代码的角色,将这些包有机地组织在了一起。

这是我们这个时代的编程之美——轻松地整合各类不相干的包并创建出新的东西。对于任何一个框架或库,你都不用全盘接受,你可以从这取一点,从那拿一些,只采用你认为有用的部分。当我刚开始接触 PHP 时这一切都很难想象,直到有了Composer.

我把注意力集中在拥抱那些对我很重要的原则和实践上,而不是某一特定框架的主张和范例。这招儿对我很管用。

当忙碌的一天结束时,最为重要的是代码的可读性、可维护性和正确性。当前流行的范例终有一天会被取代,但衡量代码品质的标准却会长存。

所以,是时候停止寻找所谓的完美框架了,把精力集中在最佳实践和如何将其纳为己用上吧。

我为创建、维护和使用自己的框架而自豪!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

PHP 8.1中的枚舉(枚舉)是什麼? PHP 8.1中的枚舉(枚舉)是什麼? Apr 03, 2025 am 12:05 AM

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

描述紮實的原則及其如何應用於PHP的開發。 描述紮實的原則及其如何應用於PHP的開發。 Apr 03, 2025 am 12:04 AM

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試? 在PHPStorm中如何進行CLI模式的調試? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

如何用PHP的cURL庫發送包含JSON數據的POST請求? 如何用PHP的cURL庫發送包含JSON數據的POST請求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...

See all articles