php之框架增加日志记录功能类
2023-09-14 09:00:26 时间
$log = self::isBak(); //计算文件的地址,判断大小
$fh = fopen($log,ab); //打开,追加模式
fwrite($fh,$cont);
fclose($fh);
//备份日志
public static function bak(){
//给出写入文件的路径,把原来的日志
//改为年月日 .bak 的形式
$log = ROOT .data/log/. self::LOGFILE;
$bak = ROOT .data/log/.date(Ymd) .mt_rand(10000,99999). .bak;
return rename($log,$bak);
//判断日志是否大于1M
public static function isBak(){
//判断文件是否存在
$log = ROOT .data/log/. self::LOGFILE;
if(!file_exists($log)){
//如果不存在,则创建该文件
touch($log); // touch在linux也有此命令,是快速的建立一个文件
return $log;
//判断大小
clearstatcache(true,$log); //清除缓存,则创建.bak文件
$size = filesize($log);
if($size = 1024*1024){
//如果 =1M 则写入
return $log;
//到这一行,说明大于1M
if(!self::bak()){
return $log;
} else {
touch($log);
return $log;
?
框架外的PHP读取.env文件(php5.6、7.3可用版) 背景:由于项目需要,在框架外(public文件夹下)新建了一个原生的php文件,由于不知道怎么解决。只需要在宝塔上的php相应的版本上把禁用函数去除即可。其他的参数自己根据代码获取,代码简单,自己读吧。“框架外的php文件,怎么使用DB操作”(我的环境 nginx php7,3)于是上网搜索了一早上也没能又方法。于是我使用了,原生连接方法。index.php文件。这里如果出现这样的问题。............
PHP+Laravel框架RabbitMQ简单使用(路由模式) 一、简介 路由模式跟发布订阅模式类似,然后在订阅模式的基础上加上了类型,订阅模式是分发到所有绑定到交换机的队列,路由模式只分发到绑定在交换机上面指定路由键的队列
PHP+Laravel框架RabbitMQ简单使用(Pub/Sub模式) 一、简介 publish-and- subscribe, 即发布订阅模型。在Pub/Sub模型中,生产者将消息发布到一个主题(Topic)中,订阅了该Topic的所有下游消费者,都可以接收到这条消息。 每个消息可以有多个订阅者; 客户端只有订阅后才能接收到消息; 持久订阅和非持久订阅。 发布者和订阅者有时间依赖:接受者和发布者只有建立订阅关系才能收到消息; 持久订阅:订阅关系建立后,消息就不会消失,不管订阅者是否都在线; 非持久订阅:订阅者为了接受消息,必须一直在线。 当只有一个订阅者时约等于点对点模式
PHP+Laravel框架RabbitMQ简单使用(工作队列模式(竞争消费者模式)) 工作模式:一个消息生产者,一个交换器,一个消息队列,多个消费者。同样也称为点对点模式 假如我们拥有两个消费者,默认情况下,RabbitMQ 将按顺序将每条消息发送给下一个消费者,平均而言,每个消费者将获得相同数量的消息,这种分发消息的方式称为轮询。 假如有一些非常耗时的任务,某个消费者在缓慢地进行处理,而另一个消费者则空闲,显然是非常消耗资源的。
极端法测试调用,循环执行10000次
//另起页面 //引入日志功能类 class mysql{ public function query($sql){ Log::write($sql); $mysql= new mysql(); for($i=0;$i 10000;$i++){ $sql=select goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goods where goods_id=.rand(10000,99999); $mysql- query($sql); Log::write(记录); echo "执行完毕";
框架外的PHP读取.env文件(php5.6、7.3可用版) 背景:由于项目需要,在框架外(public文件夹下)新建了一个原生的php文件,由于不知道怎么解决。只需要在宝塔上的php相应的版本上把禁用函数去除即可。其他的参数自己根据代码获取,代码简单,自己读吧。“框架外的php文件,怎么使用DB操作”(我的环境 nginx php7,3)于是上网搜索了一早上也没能又方法。于是我使用了,原生连接方法。index.php文件。这里如果出现这样的问题。............
PHP+Laravel框架RabbitMQ简单使用(路由模式) 一、简介 路由模式跟发布订阅模式类似,然后在订阅模式的基础上加上了类型,订阅模式是分发到所有绑定到交换机的队列,路由模式只分发到绑定在交换机上面指定路由键的队列
PHP+Laravel框架RabbitMQ简单使用(Pub/Sub模式) 一、简介 publish-and- subscribe, 即发布订阅模型。在Pub/Sub模型中,生产者将消息发布到一个主题(Topic)中,订阅了该Topic的所有下游消费者,都可以接收到这条消息。 每个消息可以有多个订阅者; 客户端只有订阅后才能接收到消息; 持久订阅和非持久订阅。 发布者和订阅者有时间依赖:接受者和发布者只有建立订阅关系才能收到消息; 持久订阅:订阅关系建立后,消息就不会消失,不管订阅者是否都在线; 非持久订阅:订阅者为了接受消息,必须一直在线。 当只有一个订阅者时约等于点对点模式
PHP+Laravel框架RabbitMQ简单使用(工作队列模式(竞争消费者模式)) 工作模式:一个消息生产者,一个交换器,一个消息队列,多个消费者。同样也称为点对点模式 假如我们拥有两个消费者,默认情况下,RabbitMQ 将按顺序将每条消息发送给下一个消费者,平均而言,每个消费者将获得相同数量的消息,这种分发消息的方式称为轮询。 假如有一些非常耗时的任务,某个消费者在缓慢地进行处理,而另一个消费者则空闲,显然是非常消耗资源的。
相关文章
- php jquery教程下载,jquery 怎么下载
- php设计模式(六):单例模式(Singleton)
- [PHP] 从PHP 5.6.x 移植到 PHP 7.0.x新特性详解编程语言
- PHP开启MySQL扩展的必要性(php开启mysql扩展)
- 开发环境配置Linux实现PHP开发环境(linux配置php)
- PHP与MySQL网站开发实操指南(php和mysql开发)
- php在Linux上使用Yaf框架开发PHP应用(yaflinux)
- Linux安装PHP: 一步一步教你搞定(linux上安装php)
- PHP原生编程实现MySQL数据库连接(php原生连接mysql)
- php.net被Chrome/Firefox浏览器标注为可疑站点
- 轻松实现高效数据调用:PHP如何与Redis集成(php调用redis)
- 调整PHP和MySQL提升性能(phpmysql性能)
- 了解Linux中的PHP扩展:更强大的开发工具(linuxphp扩展)
- 如何在Linux下快速搭建PHP环境(linux下php环境搭建)
- Linux操作系统下的PHP编译器使用技巧(linux php编译器)
- 如何在Linux上重新安装PHP(linux重新安装php)
- PHP实现从MSSQL中数据显示(php 显示 mssql)
- 使用PHP扩展开发MSSQL应用(php扩展使用mssql)
- PHP连接MSSQL数据库的连接池优化(php mssql连接池)
- 使用PHP和MSSQL实现网站搭建(php mssql 搭建)
- Linux下快速搭建PHP环境一步到位(linux一键安装php环境)
- Linux查看PHP版本的方法简介(linux查看php版本)
- PHP生成静态页面详解
- PHP选项及相关信息函数库
- 微盾PHP脚本加密专家php解密算法
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php面向对象字段的声明与使用
- 一个简单的网页密码登陆php代码
- php接口和抽象类使用示例详解
- php环境套包dedeampz伪静态设置示例
- php中substr()函数参数说明及用法实例
- PHP缓存集成库phpFastCache用法
- PHP学习笔记(一)简单了解PHP