功能組件第二個就是框架的核心組件,你了解多少?
2021-09-01
背景
問題源于我們在進(jìn)行框架選擇時對業(yè)務(wù)所需的技術(shù)堆棧的分析。我們發(fā)現(xiàn)我們需要的框架只需要包含路由、數(shù)據(jù)庫和日志就可以滿足需求。經(jīng)過討論,我們開始了。開始幀選擇。
選擇
在討論框架選擇時,有些人更喜歡使用像 Yii 這樣功能豐富的框架。這些框架提供的功能完全可以滿足業(yè)務(wù)需求。但是,反對意見是這些框架的學(xué)習(xí)成本比較高,新人會接手。不容易,性能差,很多功能沒用;而其他人更喜歡使用Slim、Yaf,框架提供了基本的路由,其他功能組件通過lib加載,這樣就可以按需加載這種功能組件沒有冗余,學(xué)習(xí)成本也比較小。這個解決方案也有很多反對意見。每個組件是否能與框架很好的結(jié)合,每個庫都有自己的API風(fēng)格,學(xué)習(xí)成本不小,以及如何保證每個庫的穩(wěn)定性。
在這種情況下,就有了構(gòu)建一個滿足各方需求的框架的想法。團(tuán)隊希望框架只包含常用的功能組件,比如,,,這些很少用到的功能,盡量不要使用,減少必要的學(xué)習(xí)成本;為了支持一些擁有千萬級PV的業(yè)務(wù),希望框架的性能足夠好;同時希望框架的可維護(hù)性好。對于一些特殊場景,該框架可以提供良好的擴(kuò)展性并集成一些功能。進(jìn)入框架。
最后,我們討論并決定自己開發(fā)一個框架,于是我們開始了整體框架的設(shè)計。
設(shè)計框架
首先是底層框架。設(shè)計底層框架的第一個問題是如何管理框架的所有類及其依賴關(guān)系。與成熟的方案相比php什么是框架,有兩種方案:依賴注入和基于組件的設(shè)計??紤]到后續(xù)需要對各個組件進(jìn)行單元測試php什么是框架,選擇了依賴注入方案。
功能組件
第二個是框架的核心組件??蚣馨幕竟δ芙M件包括數(shù)據(jù)庫、驗證、日志等,封裝這些組件有兩種方案。您可以使用外部開源組件或自己實現(xiàn)它們。庫API風(fēng)格不一致,庫文件過多。決定這些核心組件自己實現(xiàn)。
易用性
為了完成一件事,很多功能豐富的框架提供了多種方式。開發(fā)功能時,可以同時使用方法A和方法B。有時用戶可能會不知道應(yīng)該使用哪一種;并且隨著業(yè)務(wù)的迭代,在使用上也有各種異同。因此,我們更愿意只提供一種方式來減少用戶選擇的混亂,同時提供系統(tǒng)的可維護(hù)性。
擴(kuò)展
該框架包含常用的基本組件。為了支持一些特殊組件的使用,該框架集成并提供了基于組件的擴(kuò)展能力。
總結(jié)
終于,經(jīng)過三個多月的開發(fā),框架已經(jīng)開發(fā)完成,已經(jīng)成熟可以在多個產(chǎn)品中使用;框架的某些部分可能需要不斷優(yōu)化,歡迎大家多提提意見。我們的目標(biāo)是打造一個國產(chǎn)的優(yōu)秀PHP框架。
最后直接列出框架和開發(fā)手冊。 :)
:
中文手冊:
文章來源:segmentfault,作者:eccozhou。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,歡迎發(fā)送郵件至:sean.li#ucloud.cn(郵箱中#請改為@)進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。
后臺-系統(tǒng)設(shè)置-擴(kuò)展變量-移動廣告位-內(nèi)容正文底部