温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php7怎么写框架

发布时间:2021-08-02 20:35:53 来源:亿速云 阅读:118 作者:chen 栏目:编程语言

本篇内容主要讲解“php7怎么写框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php7怎么写框架”吧!

1、路由

路由协议的规则是使用了正则表达的匹配,将不同的链接分发到不同的控制器上去,也支持调用匿名函数

// 第一种,使用匿名函数
App::router()->get('/', function () {
    echo "Beauty Framework.";
// 第二种,使用url分发到控制器
App::router()->post('/user/info/[0-9]+(/[0-9]+)?', 'App\Controllers\UserController@getUserInfo');

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 file
environment=development

6、请求响应

因为不需要View,只需要返回json数据,所以在Header直接写死了text/json。   

到此,相信大家对“php7怎么写框架”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI