国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

基于php7實現的Beauty Framework框架(附代碼)

2020-03-22 20:05:59
字體:
來源:轉載
供稿:網友
這篇文章給大家介紹的內容是關于基于php7實現的Beauty Framework框架(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助

框架的核心鏈路是從開始的請求路由解析到控制器的分發,model的數據交互到響應。
使用其他的框架實現會非常的笨重,集成的內容太多,很多都不需要用到,所以借鑒其他框架寫了一個簡單實用的框架。

先從路由開始來說:
1)路由
路由協議的規則是使用了正則表達的匹配,將不同的鏈接分發到不同的控制器上去,也支持調用匿名函數

// 第一種,使用匿名函數App::router()- get( / , function () { echo Beauty Framework. });
// 第二種,使用url分發到控制器App::router()- post( /user/info/[0-9]+(/[0-9]+)? , App/Controllers/UserController@getUserInfo 

其中實現的核心代碼:(是不是很簡單)

if (is_string($lostrcallable) preg_match( !^([/a-zA-Z0-9]+)/@([a-zA-Z0-9]+)$! , $lostrcallable, $matches)) { $html' target='_blank'>class = $matches[1]; $method = $matches[2]; $callable = function () use ($class, $method) { static $obj = null; if ($obj === null) { $obj = new $class; return call_user_func_array(array($obj, $method), func_get_args()); }

2)控制器
沒有的,你指向的哪里,就可以在哪里進行請求處理,但是按照MVC,建議寫到Controller里,大家都是這么認為的,就這么做;

3)模型層
這里直接集成了Dao類,用于數據庫查詢操作,因為現在很多都在使用MySQL,就耦合地實現了MySQL的常規操作,因為數據庫的原生操作會引起很多的注入等問題,沒有支持直接Qquery的方式來做。

4)DAO層
因為很多情況下都要進行讀寫分離,但是要使用MySQL Proxy來實現,有太過笨重,所以實現了支持數據庫query根據不同的sql分別使用master和slave數據庫。
怎么做的?

就是根據不用的查詢操作直接劃分,Select查詢操作直接分到讀庫,Insert、Update、Delete直接分到寫庫。也可以直接使用onMasterConnection/onSlaveConnection直接指定.

看看Select怎么做的,這部分是實現邏輯:

 /** * 獲取查詢內容,以數組形式返回,數據內為array。 * @access public * @param integer|array $limit Array to define SQL limit in format Array ($count, $offset) * or only $count * @return mixed Array of Clients protected function get($limit = null) $this- dbClient- setQueryChannel($this- channel); $results = $this- dbClient- arrayBuilder()- get($this- dbTable, $limit, $this- fields); $this- _reset(); if ($this- dbClient- count == 0) { return []; return $results; }

5)配置類
在開發環境和生產環境會使用不同的配置環境,在框架中可以創建.env環境來切換。在config中可以常規設置development和production,使用哪個環境就在.env設置哪個

; This is a environment configuration fileenvironment=development

當然也有一些公共的配置信息,可以在config文件里直接設置,這樣就可以在哪個環境都可以使用。

// 支持使用.連接訪問配置項,訪問的是config/app.php中的config key/Beauty/Core/App::config()- get( app.config 

6)請求響應
因為不需要View,只需要返回json數據,所以在Header直接寫死了text/json。 = =

其他實現了

memcache和redis采用一致性哈希訪問不同的實例。

validator驗證類

具體代碼都在github上 https://github.com/tigerk/Beauty

相關文章推薦:

Zend Framework框架Smarty擴展實現方法,zendsmarty

Zend Framework框架路由機制代碼分析,zendframework

以上就是基于php7實現的Beauty Framework框架(附代碼)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 错那县| 苍梧县| 车致| 洛宁县| 崇信县| 黄梅县| 鄢陵县| 靖安县| 天等县| 乌鲁木齐市| 海伦市| 雷州市| 黑水县| 商都县| 桐梓县| 定南县| 突泉县| 阳新县| 武功县| 石台县| 托里县| 南澳县| 灌南县| 剑阁县| 贵德县| 盐城市| 法库县| 鄂伦春自治旗| 即墨市| 竹溪县| 巴林右旗| 小金县| 永丰县| 洛隆县| 湖南省| 茶陵县| 邵阳县| 富顺县| 陆川县| 响水县| 定州市|