国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

為什么還要寫一個PHP框架?

omgdog / 1030人閱讀

摘要:最后討論決定自己開發(fā)一個框架,于是就開始了整體框架的設(shè)計(jì)。設(shè)計(jì)框架首先是底層框架,設(shè)計(jì)底層框架的第一個問題就是如何管理框架的所有類及其依賴關(guān)系,對比成熟的方案有依賴注入和基于組件設(shè)計(jì)兩種方案。

背景

事情源于在做框架選型的時候,我們對業(yè)務(wù)需要的技術(shù)棧進(jìn)行了分析,發(fā)現(xiàn)我們需要的框架只需要包含路由、數(shù)據(jù)庫、Redis、日志,就可以滿足需求了,大家討論后開始著手框架的選擇。

選型

討論框架選型時部分人意見偏向使用Laravel、Yii這種富功能框架,這些框架提供的功能是完全可以滿足業(yè)務(wù)需求的,然而反對的意見則是這些框架的學(xué)習(xí)成本比較高,新人接手不容易,而且性能較差,很多特性都用不到;而另一部分人則偏向于使用Slim、Yaf, 框架提供了基本的路由,其他功能組件則通過lib加載進(jìn)來,這樣就可以按需加載各種功能組件,沒有多余的feature,學(xué)習(xí)成本相對較小,同樣這種方案也有很多反對意見,各個組件是否能與框架結(jié)合的很好,每個lib有各自的API風(fēng)格,學(xué)習(xí)成本也不小,而且如何保障各個lib的穩(wěn)定性。

在這樣的情況下,就有了構(gòu)件一個滿足各方需求框架的想法,團(tuán)隊(duì)希望框架只包含了常用的功能組件,像Event、Behavior、Broadcasting、Notification這些很少用到的功能盡量不需要,減少不必要的學(xué)習(xí)成本;為了支持一些業(yè)務(wù)千萬級的PV,希望框架的性能足夠好;同時希望框架的可維護(hù)性較好,針對一些特殊的場景,框架能提供良好的擴(kuò)展能力,將一些功能集成到框架里。

最后討論決定自己開發(fā)一個框架,于是就開始了整體框架的設(shè)計(jì)。

設(shè)計(jì) 框架

首先是底層框架,設(shè)計(jì)底層框架的第一個問題就是如何管理框架的所有類及其依賴關(guān)系,對比成熟的方案有依賴注入和基于組件設(shè)計(jì)兩種方案。由于考慮后續(xù)需要對各個組件進(jìn)行單元測試,選擇了依賴注入的方案。

功能組件

第二個就是框架的核心組件,框架包含的基本功能組件有數(shù)據(jù)庫、驗(yàn)證、日志、Session、Cookie、Redis等,封裝這些組件有兩種方案,可以采用外部開源的composer組件,或者自己實(shí)現(xiàn),由于不同composer庫API風(fēng)格不一致,而且很多庫require文件太多,決定這些核心組件均自己實(shí)現(xiàn)。

易用性

要完成一件事,很多富功能框架提供了多種方式,在開發(fā)一個功能時,既可以使用A方法,又可以使用B方法,有時用戶可能很迷惑,到底應(yīng)該用哪個呢;而且隨著業(yè)務(wù)迭代,到處是各種異同的使用方式。所以我們偏向于只提供單一的方式,減少用戶選擇的困惑,同時提供系統(tǒng)的可維護(hù)性。

擴(kuò)展

框架包含了常用的基礎(chǔ)組件,為了支持使用一些特殊的組件,框架集成了composer,并且提供了基于組件的擴(kuò)展能力。

總結(jié)

最后,經(jīng)過三個多月開發(fā),框架開發(fā)完成,并且已經(jīng)成熟在幾個產(chǎn)品使用;框架的有些地方可能還需要不斷優(yōu)化,也歡迎大家提及各種Issue,我們的目標(biāo)是打造一款國內(nèi)、優(yōu)秀的PHP框架。

最后直接列一下框架以及開發(fā)手冊。:)

BetePHP: https://github.com/betephp/be...
中文手冊: http://betephp.com/zh/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/116555.html

相關(guān)文章

  • 什么還要一個PHP框架

    摘要:最后討論決定自己開發(fā)一個框架,于是就開始了整體框架的設(shè)計(jì)。設(shè)計(jì)框架首先是底層框架,設(shè)計(jì)底層框架的第一個問題就是如何管理框架的所有類及其依賴關(guān)系,對比成熟的方案有依賴注入和基于組件設(shè)計(jì)兩種方案。 背景 事情源于在做框架選型的時候,我們對業(yè)務(wù)需要的技術(shù)棧進(jìn)行了分析,發(fā)現(xiàn)我們需要的框架只需要包含路由、數(shù)據(jù)庫、Redis、日志,就可以滿足需求了,大家討論后開始著手框架的選擇。 選型 討論框架選...

    caohaoyu 評論0 收藏0
  • 什么還要一個PHP框架

    摘要:最后討論決定自己開發(fā)一個框架,于是就開始了整體框架的設(shè)計(jì)。設(shè)計(jì)框架首先是底層框架,設(shè)計(jì)底層框架的第一個問題就是如何管理框架的所有類及其依賴關(guān)系,對比成熟的方案有依賴注入和基于組件設(shè)計(jì)兩種方案。 背景 事情源于在做框架選型的時候,我們對業(yè)務(wù)需要的技術(shù)棧進(jìn)行了分析,發(fā)現(xiàn)我們需要的框架只需要包含路由、數(shù)據(jù)庫、Redis、日志,就可以滿足需求了,大家討論后開始著手框架的選擇。 選型 討論框架選...

    崔曉明 評論0 收藏0
  • 什么還要一個PHP框架

    摘要:最后討論決定自己開發(fā)一個框架,于是就開始了整體框架的設(shè)計(jì)。設(shè)計(jì)框架首先是底層框架,設(shè)計(jì)底層框架的第一個問題就是如何管理框架的所有類及其依賴關(guān)系,對比成熟的方案有依賴注入和基于組件設(shè)計(jì)兩種方案。 背景 事情源于在做框架選型的時候,我們對業(yè)務(wù)需要的技術(shù)棧進(jìn)行了分析,發(fā)現(xiàn)我們需要的框架只需要包含路由、數(shù)據(jù)庫、Redis、日志,就可以滿足需求了,大家討論后開始著手框架的選擇。 選型 討論框架選...

    wangbinke 評論0 收藏0
  • Laravel 深入核心系列教程

    摘要:前言年底了不太忙,最近一段時間也一直在研究,就想寫篇關(guān)于比較深一點(diǎn)的教程系列啥的,于是就找到站長給開了寫教程的渠道。優(yōu)點(diǎn)的就是為藝術(shù)家創(chuàng)造的框架,它也是工程化的趨勢。項(xiàng)目維護(hù)方便也是事實(shí)。如果有遇到問題可以直接在教程下面留言。 前言 年底了不太忙,最近一段時間也一直在研究laravel,就想寫篇關(guān)于laravel比較深一點(diǎn)的教程系列啥的,于是就找到站長給開了寫教程的渠道。由于第一次寫,...

    wemall 評論0 收藏0
  • 什么要開發(fā)一個 MixPHP 框架

    摘要:異步隊(duì)列消費(fèi)者開發(fā)只提供了模式下運(yùn)行控制器方法,并未提供主進(jìn)程多子進(jìn)程的進(jìn)程模型,并未提供多線程處理。多線程異步隊(duì)列服務(wù)只需寫好控制器方法,然后在配置文件中配置下路由命名空間進(jìn)程線程數(shù)量,就可在模式中啟動多進(jìn)程多線程模型的異步隊(duì)列處理程序。 最近業(yè)余時間一直在開發(fā)ExpressPHP的第二個版本 MixPHP,今天下班想起之前一個面試官的問題:你為什么還要再造一個輪子呢?仔細(xì)回想,第一...

    SnaiLiu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<