结合php xdebug webGrind一图查看调用链路及性能(适合老项目梳理与维护)

2022-07-14
阅读 4 分钟
1.6k
由于近期维护老项目,各种factory类,各种parent嵌parent。各种abstract extends,而且依赖项目外的许多common和中间件等。IDE内无法直接跳转,而且急需缕清方法的调用链路。调研后有了以下组件的组合。此文不涉及具体安装步骤,核心就是文末的链接地址^_^

如何在Php中获得一个Final类的Protected的static成员属性

2021-02-20
阅读 2 分钟
1.2k
PHP Fatal error: Class test may not inherit from final class (ConstantOne)

php CLI源码初识

2020-04-12
阅读 4 分钟
1.9k
php cli是sapi的具体实现之一,他是在具体终端上现实的。另外包括cgi,fpm,embed,也都是sapi的具体实现。这里sapi可以理解为php的一个外部环境展示的接口。每种具体模式的实现都会有选择的去实现他声明的一些方法。而cli是相对简单的实现逻辑。cli main程序入口在 \sapi\cli\php_cli.c中。另外还有一个内置的web服务器...

PHP Golang高级工程师面试题

2019-07-22
阅读 27 分钟
17.3k
准备自我介绍:说上家公司负责的项目或者浓缩简历。简历(最优.pdf格式)项目经验层次【qǐ chéng zhuǎn hé】具体展开到某个项目(需要结合自身岗位定位,用 STAR 法则)项目背景难点在哪遇到什么问题及解决方案工作内容(利用什么技术,实现了哪些功能)面向(对象oop,切面aop)设计模式(代理、工厂、单例、门面、观察者...

CodeIgniter框架中抽取部分类库做问题追踪的思路

2019-04-23
阅读 3 分钟
1.8k
由于各种原因,没有接入完整的调用链追踪,(┬_┬)。但是我们自身再通过php的curl调用各端接口时,会请求多次。那么有没有一种方法可以在不植入业务代码的前提下,捕捉到这些curl的请求呢。显然,ci有基本的hook操作。我们可以在相关节点时,可选择的把这些收集到到的通过异步的方式发送给指定的监听者。

CodeIgniter3.0+框架自定义异常处理实现

2019-03-27
阅读 4 分钟
4.2k
ci3.0框架核心代码自动实现了异常,并实现了抛出的对应页面和方法,对于一些个性化需求特别是接口类型的应用,会不合适。因此需要在不改版核心代码 (system目录下文件),来改变对异常及404等相关异常的处理。

jenkins+sonarqube+php自动检测&发送邮件基本实现

2019-03-11
阅读 4 分钟
7.6k
目的 对于小组内部PHP代码进行定期检测及分发 {代码...} jenkins安装及安装插件 {代码...} 效果图 首页有任务视图 视图执行 定时邮件发送 指定bug分配通知到指定人 sonar notify 系统管理-系统设置(全局设置和路径) sonar配置 基本配置 邮件插件配置 默认邮件配置 我的视图-具体项目配置 构建选项及工作空间等设置 源...

php-fpm7.0 慢查询设置及说明

2018-01-03
阅读 3 分钟
8.1k
环境说明 {代码...} 查看php-fpm配置路径 {代码...} php-fpm.conf的最后一行为 {代码...} 那我们去那里改www.conf,查看关于慢查询的介绍 {代码...} 添加两行配置 {代码...} 重启fpm,同时注意目录权限等一般问题 {代码...} 查看log回显结果 {代码...} 关于log的说明 {代码...} 这个没啥解释,时间进程id {代码...} 执行...

PHP7中异常与错误处理与之前版本对比

2017-06-07
阅读 1 分钟
2.2k
先上代码 {代码...} PHP v5.6.1结果 {代码...} PHP v7.0.15结果 {代码...} 区别 在于后者可以捕获fatal error,并且可以正常输出helloword

mysql 中timestampsdiff 根据时间实时刷新的应用

2017-06-06
阅读 2 分钟
2.4k
PHP实现一个展现列表,列表中有三个时间点。分别是创建时间、转移时间、反馈时间、处理时间、关闭时间。要求:1.以转移时间为起点,如果转移时间+86400秒(一天)后,对应有权限的人没有将此id反馈,或者转移时间+864000秒(十天)后那么也标记为超时。2.可以对列表结果进行搜索 全部|超时|未超时

php计算N个工作日之后的方法

2017-05-31
阅读 3 分钟
4.2k
需求点 给定一个当前日期N,计算m个工作日后的天数x 话不多说,上代码 {代码...} 需要手动维护法定节假日及周末

关于php的打包 解包 Phar

2017-04-17
阅读 1 分钟
5.2k
最近用php连接hive,找到了php-thrift-sql,发现readme里面有一句:第一次接触是韩老大的创建swooole打包文章 {代码...} 因为php.ini中phar.readonly默认是on的,而我们这里需要解包打包使用,所以要配置如下 {代码...} 我们看代码里有一个ThriftSQL.phar,想知道使用应该要看看源码。那么怎么解包呢? {代码...} 解包正...

sonarqube For PHP 代码质量管理

2017-03-16
阅读 5 分钟
11.7k
下载jdk&sonarqube&sonar-scanner 安装jdk 基于ubuntu 16.04+apache[具体webserver采用缺省安装]推荐下载安装【底部有网盘地址】 {代码...} 解压安装配置环境变量 我的在usr/local下,uzip解压 mv等操作略过 . {代码...} {代码...} {代码...} 打开之后在末尾添加,以下只是参考,只要放到环境变量就行 {代码...} ...

CI/YAF框架中集成一个根据PHP注释生成对应文档的功能

2017-01-20
阅读 1 分钟
3.1k
先上图 CI文档列表页面-1 CI文档列表页面-2 CI文档详情页面 YAF文档详情,注意看他的pathinfo部分和CI的不大一样,而且目录结构和类命名也不大一样。 主要是抽取自phalapi 使用方法 如果使用默认ci/yaf框架及结构目录,只需将Controller/doc.php,views/doc/*的两个模版文件放入项目即可。 如果其他项目引入,只需在Contr...

CI 框架简单入门笔记

2017-01-08
阅读 5 分钟
4.3k
C层: 入口文件-URL获取控制器$_GET['c']和方法$_GET['a']--包含c的文件类(控制器文件)- 实例化c控制器对象-调用方法a(并协调模型和视图),C层不直接调用DB,下面会有提到。

怎么通过$a获取到$b?某豹面试题

2016-12-30
阅读 2 分钟
1.9k
看一分钟之后,直觉告诉PHP实现我不会。只知道url_a->url_b,b通过$_SERVER['HTTP_REFERER'].可以知道a

array_map & create_function 处理两个数组

2016-12-14
阅读 1 分钟
2.2k
array_map 默认接受两个参数,第一个为用户自定义函数名称,第二个参数为数组。可以根据用户自定义函数的处理参数个数,来扩充array_map的第2+个参数

PHP服务端和APP客户端实现RSA+AES双向加密解密

2016-11-18
阅读 1 分钟
5.2k
目的:服务端和移动端双向加密解密 共有七个文件 其中包括三个类文件 lib_aes.php aes对称加密解密类 server_rsa_crypt.php 服务端RSA公钥私钥非对称加密解密类 client_rsa_crypt.php 客户端RSA公钥私钥非对称加密解密类 四个过程文件,其中文件中有注释和exapmle数据 第一步:客户端和服务端交换密钥(明文)-service_cl...

php生成唯一图片uuid

2016-11-17
阅读 1 分钟
3.2k
{代码...}

php的插入排序,通过双层for循环

2016-11-01
阅读 2 分钟
2.4k
内层循环是遍历已经排序好的数组, 将arr[i](也就是temp)依次与有序数组做对比, 如果发现有序数组其中一个比准备插进来的arr[i]大, 那么谁比这个arr[i]大,谁就出去,把位置腾出去, 当然比arr[i]大的这个数也不能扔,就给他放在已经排号序数组中 且相对于他的下一个索引就好了。

php 处理信号简单演示

2016-08-12
阅读 2 分钟
4.9k
我们常用的信号 kill sigterm sigkill【kill命令】 ctrl+c sigint【键盘发出】 reload sinhub【一般从终端发出】 ctrl+z sigstop 【键盘发出】 定时器 sigalarm【一个进程只能有一个定时时间,多的会被新值覆盖】 sigkill和sinstop 在进行信号处理时,不能被忽略,(处理信号可以有忽略,执行默认 执行用户指定处理) ph...

php二维数组指定其键名对其排序的方法

2016-07-19
阅读 2 分钟
2.4k
array_merge是将两个数组合并为一个数组,如果两个数组中有相同键名,那么后面的会覆盖前面的array_merge_recursive 也是合并两个相同数组,如果两个数组中有相同键名,那么根本不会进行键名覆盖,而是将多个相同键名的值组成一个新数组.

记录php daemon 进程 遇到的问题--posix_setsid函数

2016-07-15
阅读 4 分钟
8.3k
一个守护进程无需交互,也和终端(teriminalsession)无关,所以任何输出,无论是向标准输出还是错误输出,都需要特殊处理,涉及到的就是stdout和stderr

简单记录PHP buffer ob_start ob_flush

2016-07-15
阅读 2 分钟
5.5k
输出的字符串 => PHP buffer => 等待输出 => web 服务器的缓冲区 => tcp 缓冲区 => 客户端

linux cron 参数及常用案例-附带cron检测验证工具

2016-06-03
阅读 1 分钟
3.8k
在线验证工具:php是世界上最好的语言 另外说一句,ubuntu的cron日志默认是关闭的。 {代码...} 在上面的文件中把cron前面的注释删除,然后重启一下 {代码...} 用那个/etc/init.d/rsyslog restart 我试了不起作用。 然后可以tail /var/log/cron.log 查看

关于php echo用逗号和用点号连接的区别?哪个更快?

2016-03-24
阅读 4 分钟
3.4k
结果是什么?1+5=6?1+5=6?——————6?2?——————6.6?6.6?——————我只能说echo '5+1=' . 1+5;的结果是10,所以结果是6和2.

php简单实现栈结构

2016-03-08
阅读 1 分钟
1.8k
{代码...} 结果: {代码...}

php memcache 一致性hash入门

2016-03-08
阅读 2 分钟
2.8k
一致性hash分步简单理解:将服务器节点和key节点都按照Crc32函数部署。简单排序到圆环上。比如四台服务器,理想化可分布在12 3 6 9点钟四个位置。然后根据key的crc32的值,找到离他最近的服务器节点,放入。希望各位前辈指教

代码解释类似smart模版引擎原理

2016-01-27
阅读 3 分钟
1.8k
先贴下目录结构: {代码...} {代码...} {代码...} 简单调用如下:(index.php中内容) {代码...} 既然你看到这里,其实这篇文章写的更好

obstart的小用法

2015-12-17
阅读 1 分钟
2k
在处理opencart图片加载的时候,想用lazylaod这个jquery插件,网站前台都显示好了,在后台加载的时候发现2了,后台编辑商品的图片显示没出来。