您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“php7怎么寫框架”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“php7怎么寫框架”吧!
1、路由
路由協(xié)議的規(guī)則是使用了正則表達的匹配,將不同的鏈接分發(fā)到不同的控制器上去,也支持調(diào)用匿名函數(shù)
// 第一種,使用匿名函數(shù) App::router()->get('/', function () { echo "Beauty Framework.";
// 第二種,使用url分發(fā)到控制器 App::router()->post('/user/info/[0-9]+(/[0-9]+)?', 'App\Controllers\UserController@getUserInfo');
2、控制器
沒有的,你指向的哪里,就可以在哪里進行請求處理,但是按照MVC,建議寫到Controller里,大家都是這么認為的,就這么做;
3、模型層
這里直接集成了Dao類,用于數(shù)據(jù)庫查詢操作,因為現(xiàn)在很多都在使用MySQL,就耦合地實現(xiàn)了MySQL的常規(guī)操作,因為數(shù)據(jù)庫的原生操作會引起很多的注入等問題,沒有支持直接Qquery的方式來做。
4、DAO層
因為很多情況下都要進行讀寫分離,但是要使用MySQL Proxy來實現(xiàn),有太過笨重,所以實現(xiàn)了支持數(shù)據(jù)庫query根據(jù)不同的sql分別使用master和slave數(shù)據(jù)庫。
怎么做的?
就是根據(jù)不用的查詢操作直接劃分,Select查詢操作直接分到讀庫,Insert、Update、Delete直接分到寫庫。也可以直接使用onMasterConnection/onSlaveConnection直接指定.
看看Select怎么做的,這部分是實現(xiàn)邏輯:
/** * 獲取查詢內(nèi)容,以數(shù)組形式返回,數(shù)據(jù)內(nèi)為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、配置類
在開發(fā)環(huán)境和生產(chǎn)環(huán)境會使用不同的配置環(huán)境,在框架中可以創(chuàng)建.env環(huán)境來切換。在config中可以常規(guī)設(shè)置development和production,使用哪個環(huán)境就在.env設(shè)置哪個
; This is a environment configuration file environment=development
6、請求響應(yīng)
因為不需要View,只需要返回json數(shù)據(jù),所以在Header直接寫死了text/json。
到此,相信大家對“php7怎么寫框架”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。