随笔分类 - php
摘要:1. phpunit.xml 中添加 dingo 相关配置 2. dingo 的路由配置文件包含不能使用 require_once。 否则, 可能会出现一种情况是, phpunit 中第一个请求成功了, 但是后面的请求都 404。 这里涉及到的一个知识点是:laravel 或 lumen phpun
阅读全文
摘要:相关文档:中文文档、英文文档 envoy 是什么? envoy 是一个支持 blade 语法的 ssh 远程命令执行的工具。具体来说就是,通过配置 ssh 的账号、密码、key 这些,然后可以使用 envoy 运行一些预定义的命令(比如 git 更新什么的)。 安装 怎么使用? 配置(~/.ssh/
阅读全文
摘要:1、更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 N+1 问题? 在维护的项目中, 我发现了有不少需要查询关联数据的时候是这样做的:先查询出列表,然后
阅读全文
摘要:我们假设一下,我们有一个方法,拥有多达 20 多个参数,如: 这种情况下,我们可以想象到后续维护时候的痛苦,尤其是,需要增加或者删除参数的时候。 今天看 Redis 的 Queue 源代码的时候发现,里面的 Worker 的配置项是有一个独立的类来维护的: 源代码查看:Illuminate/Queu
阅读全文
摘要:1. 在修改 queue 相关代码后,必须要使用 php artisan queue:restart 来重启队列服务,否则所做的修改可能不会生效(没法重现了,按理说应该和使用 queue:listen 或 queue:work 有关,不过最好还是重启;可能和 supervisor 开启多个 queu
阅读全文
摘要:基于本机环境(php7,macos) 1、xhprof 扩展 php7 下安装 xhprof 扩展: 安装完之后,需要修改 php.ini 配置,找不到 php.ini 可以 php -i | grep php.ini,添加以下配置: 以上路径需要根据本机安装路径进行修改,需要说一下的是,outpu
阅读全文
摘要:php 性能测试工具 ab(Apache Benchmark) ab 是由 Apache 提供的压力测试软件。安装 apache 服务器时会自带该压测软件。 如何使用: -n 请求数 -c 并发数 使用 php 语言时可以优化的地方 1、少写 php 代码,多使用 php 自身的内置函数去实现要实现
阅读全文
摘要:在此前的另外一篇文章讨论过 opcache:php 性能优化之opcache - 让你的php性能提升 50% 再来复习一下吧,导致 php 慢的各种因素中解析性语言的特性可以说是罪魁祸首,再加上,每次请求完都释放请求时所加载的全部文件,因此也就显得更慢了。 后来我们有了 opcache,使用这个的
阅读全文
摘要:前提条件: 1、有公网服务器(如阿里云) 2、需要独立的 80 端口,也就是说,想要实现这个目标,服务器上不能跑 nginx 之类占用 80 端口的程序 3、有可以测试使用的域名,并解析到上面说的公网服务器 原理:公网服务器的 80 端口流量转发到本地处理,本地处理完再返回给微信服务器。 步骤 1、
阅读全文
摘要:其实官方文档有说,只是没看仔细。 正常情况下,修改 php 代码是不用重启什么东西的, 但是 laravel 中的 job 不一样, 如果不用 php artisan queue:restart,新 dispatch 的 job 跑的还会是原来的代码。 也就是说,如果发现 job 有 bug,改了之
阅读全文
摘要:有时候我们想在命令行执行一些耗时的命令,我们可以利用 symfony 提供的进度条相关的类,来输出一个进度条,显示当前的处理进度。 参考:http://symfony.com/doc/current/components/console/helpers/progressbar.html 效果: 输出
阅读全文
摘要:php 里有一套错误处理机制,可以使用 set_error_handler 接管 php 错误处理,也可以使用 trigger_error 函数主动抛出一个错误。 set_error_handler() 函数设置用户自定义的错误处理函数。函数用户创建运行期间用户自己的错误处理方法。它需要先创建一个错
阅读全文
摘要:从一个简单的例子说起: 输出: 我们通过上面的例子可以看出,person 对象和下面的数组序列化结果值的部分是相同的,只是类型不一样。 这就涉及到 php 中对象和普通变量之间的关系问题,实际上,在 php 中,对象也是变量的一种。 php 中 zend_value 的定义: 而对象的类型是 zen
阅读全文
摘要:有时候我们可能需要重复调用一个函数,里面有些变量不需要重复初始化、初始化成本比较高的,我们可以使用 static 关键字修饰,在该变量没有初始化的时候才进行初始化,初始化过的变量就不再初始化。如: 上面会输出: 从上面的结果可以看出,static 变量只初始化了一次,而这个变量在该进程的生命周期内都
阅读全文
摘要:关联数组: yaml json 普通数组 yaml json 普通键值对 yaml json
阅读全文
摘要:有可能是配置缓存导致的, 运行: php artisan config:clear 可清除配置缓存,配置缓存保存在 bootstrap/cache/config.php,可以直接去那文件夹看看是不是缓存导致的。 还有另外一个缓存文件 bootstrap/cache/services.json,上面的
阅读全文
摘要:上次干这事已经是一年前了,之前的做法特别的繁琐、冗余,具体就是创建一个自定义 Builder 类,继承自 Query\Builder,然后覆盖 Connection 里面获取 Builder 的方法,返回自定义的 Builder,还有其他一系列很长的步骤。 下面是之前的做法: (算了,还是不说了,太
阅读全文
摘要:和 array_intersect 类似,只不过 array_uintersect* 系列函数的值比较使用自定义函数; 键的比较,array_uintersect、array_uintersect_assoc 是使用内置方法, array_uintersect_uassoc 是使用自定义函数。 输出
阅读全文
摘要:width = $width; $this->height = $height; } } $array1 = [ 'a' => new Rectangle(1, 2), 'b' => new Rectangle(2, 3), ]; $array2 = [ 'a' => new Rectangle(2, 3), 'c' => new ...
阅读全文
摘要:输出:
阅读全文

浙公网安备 33010602011771号