框架的焦点链路是从入手下手的哀求路由解析到节制器的分领,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)) {
$class = $matches[1];
$method = $matches[两];
$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());
};
}两)节制器
不的,您指向的那边,就能够正在那边入止乞求处置,然则根据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 file
environment=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
便说到那面了,有其他念知叙的,否以点击那个哦。→ →php视频学程
以上等于php7要是鉴戒其他框架,写没自身的框架的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

发表评论 取消回复