tp5中间件

中间件

一下是我做的一个tp5框架中的一个例子仅做参考,也可以参考https://www.kancloud.cn/manual/thinkphp5_1/564279手册。

首先创建目录:

 

 

class System
{
    public function handle($request, \Closure $next)
  {  $systems=SystemModel::cache('system')->select()->toArray(); //从数据库中查询出系统配置星系,并缓存可以减小数据库的的负担
        $systemConfig=[]; //定义一个数组
        foreach($systems as $k=>$v){ //循环查出来的数据
            $systemConfig[$v['system_key']]=$v['system_value']; //赋值
        }
        /*View::share($systemConfig);*/
        \think\facade\Cache::set('systemConfig',$systemConfig);//调用门面里的方法
        \think\facade\View::share($systemConfig); //分配到试图中
        return $next($request); //相当与把请求传入接下来的逻辑中,同时,中间件也可以返回重定向,不运行之前的逻辑。
    }
}

在application目录下面建立一个全局的中间件

 

因为是利用缓存所以在增加更新之后都要删除一下缓存

\think\facade\Cache::rm('system');

数据库表

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TP5中实现MySQL读写分离,可以通过配置多个数据库连接来实现。具体步骤如下: 1. 打开config/database.php文件,添加读库和写库的数据库配置,例如: ```php return [ // 读库配置 'read' => [ 'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'test', 'username' => 'root', 'password' => '', 'hostport' => '3306', 'params' => [ \PDO::ATTR_PERSISTENT => true, ], ], // 写库配置 'write' => [ 'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'test', 'username' => 'root', 'password' => '', 'hostport' => '3306', 'params' => [ \PDO::ATTR_PERSISTENT => true, ], ], // 默认数据库配置 'default' => [ 'type' => 'mysql', // 读写分离配置 'read_write_separate' => true, 'params' => [ // 读写分离配置 'read' => ['read'], 'write' => ['write'], ], ], ]; ``` 在默认数据库配置中,我们设置了`read_write_separate`为true,表示启用读写分离。并且在`params`中,设置了`read`和`write`参数,分别指向读库和写库的数据库配置。 2. 在具体的模型中,使用`Db`类的`connect`方法来选择具体的数据库连接,例如: ```php namespace app\index\model; use think\Model; use think\Db; class User extends Model { // 读操作 public function readData($id) { return Db::connect('read')->table('user')->where('id', $id)->select(); } // 写操作 public function writeData($data) { return Db::connect('write')->table('user')->insert($data); } } ``` 在读操作中,我们使用了`Db::connect('read')`来选择读库的数据库连接,而在写操作中,我们使用了`Db::connect('write')`来选择写库的数据库连接。 通过以上步骤,我们就可以在TP5中实现MySQL的读写分离了。需要注意的是,读写分离的实现方式有多种,具体实现方式要根据实际情况而定。例如,可以使用MySQL的主从复制来实现读写分离,也可以使用中间件来实现读写分离等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值