你知道什么是 AOP 吗?

2022-01-09
阅读 2 分钟
3.5k
前言AOP 的全称为 Aspect Oriented Programming,意思是:面向切面编程。为什么会有这篇文章?是因为看了 Laravel 中 Pipeline 的设计,发现 Pipeline 就是基于 AOP 思想的一种实现。说起 AOP,就不得不说起 OOP,它们又是什么关系,有什么区别?AOP 与 OOP 的区别OOP 我们都知道,全程为 Object Oriented Programming ...

使用 Docker 秒速搭建多版本 PHP 开发环境

2021-07-03
阅读 4 分钟
6.7k
文章中使用的软件:Mac:11.4(macOS Big Sur) ,处理器为:Intel Core。Docker:3.3.3目标支持 PHP 5.6.x 环境支持 PHP 7.2.x 环境下载Docker 软件下载安装,不做过多解释,一步步安装即可。下载地址:[链接]代理设置 {代码...} 配置环境PHP 7.2.x,占用本地端口 8081启动 docker;下载压缩包:php7-2-x.zip 并进行解压...

当查询的数据来自多个数据源,有哪些好的分页策略?

2020-03-16
阅读 4 分钟
2.9k
概述 在业务系统开发中,尤其是后台管理系统,列表页展示的数据来自多个数据源,列表页需要支持分页,怎么解决? 问题 如上图,数据源可能来自不同 DB 数据库,可能来自不同 API 接口,也可能来自 DB 和 API 的组合。 我这也没有太好的解决方案,接到这样的需求,肯定首先和需求方沟通,这样分页是否合理。 无非就两种方...

API 接口设计规范

2020-02-24
阅读 2 分钟
5.4k
概述 这篇文章分享 API 接口设计规范,目的是提供给研发人员做参考。 规范是死的,人是活的,希望自己定的规范,不要被打脸。 路由命名规范 动作 前缀 备注 获取 get get{XXX} 获取 get get{XXX}List 新增 add add{XXX} 修改 update update{XXX} 保存 save save{XXX} 删除 delete delete{XXX} 上传 upload upload{XXX} ...

送别2019,期待2020!

2020-01-04
阅读 1 分钟
1.7k
概述 2019 年时间过得很快。 有欢笑、 有离别、 有压力、 有收获。 关于工作 项目发生了变动,团队也发生了变动,不过总体是成长的,在这感谢领导的关照、信任! 下半年开始学习 Go 语言,并用 Go 进行搭建项目,也算是刚刚入门了吧。 自己在团队内也进行了几次分享,锻炼了自己的上台说的能力。 期间听过一些大牛的分享...

Swoole 启动一个服务,开启了哪些进程和线程?

2019-06-24
阅读 3 分钟
5.5k
概述 Swoole 启动一个服务,开启了哪些进程和线程? 为了解决这个问题,咱们启动一个最简单的服务,一起看看究竟启动了哪些进程和线程? 然后结合官网运行流程图,对每个进程和线程进行归类。 服务启动后打印出当前 Swoole 版本 和 当前 CPU 核数。 打印 Swoole 版本,是让大家可以下载这个版本 去运行代码。 打印 CPU ...

压测 swoole_websocket_server 性能

2019-06-10
阅读 4 分钟
4.6k
概述 这是关于 Swoole 入门学习的第十篇文章:压测 swoole_websocket_server 性能。 第九篇:Swoole Redis 连接池的实现 第八篇:Swoole MySQL 的实现 第七篇:Swoole RPC 的实现 第六篇:Swoole 整合成一个小框架 第五篇:Swoole 多协议 多端口 的应用 第四篇:Swoole HTTP 的应用 第三篇:Swoole WebSocket 的应用 第...

Swoole MySQL 连接池的实现

2019-05-27
阅读 10 分钟
5k
概述 这是关于 Swoole 入门学习的第八篇文章:Swoole MySQL 连接池的实现。 第七篇:Swoole RPC 的实现 第六篇:Swoole 整合成一个小框架 第五篇:Swoole 多协议 多端口 的应用 第四篇:Swoole HTTP 的应用 第三篇:Swoole WebSocket 的应用 第二篇:Swoole Task 的应用 第一篇:Swoole Timer 的应用 收到读者的咨询,这...

Swoole RPC 的实现

2019-05-20
阅读 7 分钟
5.4k
概述 这是关于 Swoole 学习的第七篇文章:Swoole RPC 的实现。 第六篇:Swoole 整合成一个小框架 第五篇:Swoole 多协议 多端口 的应用 第四篇:Swoole HTTP 的应用 第三篇:Swoole WebSocket 的应用 第二篇:Swoole Task 的应用 第一篇:Swoole Timer 的应用 有位读者说 “上篇文章,下载代码后直接运行成功,代码简洁明...

使用过Redis,我竟然还不知道Rdb

2019-05-16
阅读 5 分钟
1.5k
使用过Redis,那就先说说使用过那些场景吧 字符串缓存 {代码...} 队列 {代码...} 发布订阅 {代码...} 计数器 {代码...} 排行榜 {代码...} 集合间操作 {代码...} 悲观锁 解释:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观。 每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。 场景:如果项目中...

Swoole 整合成一个小框架

2019-05-15
阅读 12 分钟
2.7k
概述 这是关于 Swoole 学习的第六篇文章:Swoole 整合成一个小框架。 第五篇:Swoole 多协议 多端口 的应用 第四篇:Swoole HTTP 的应用 第三篇:Swoole WebSocket 的应用 第二篇:Swoole Task 的应用 第一篇:Swoole Timer 的应用 写了关于 Swoole 入门的 5 篇文章后,增加了不少的关注者,也得到了一些大佬的鼓励,也...

Swoole 多协议 多端口 的应用

2019-05-15
阅读 12 分钟
3.5k
概述 这是关于 Swoole 学习的第五篇文章:Swoole 多协议 多端口 的应用。 第四篇:Swoole HTTP 的应用 第三篇:Swoole WebSocket 的应用 第二篇:Swoole Task 的应用 第一篇:Swoole Timer 的应用 主要参考官方的这两篇文章,进行实现的 Demo。 网络通信协议设计:[链接] 多端口监听的使用:[链接] 希望通过我提供的 Dem...

Swoole HTTP 的应用

2019-05-15
阅读 7 分钟
3.8k
概述 这是关于 Swoole 学习的第四篇文章:Swoole HTTP 的应用。 第三篇:Swoole WebSocket 的应用 第二篇:Swoole Task 的应用 第一篇:Swoole Timer 的应用 我们都知道 HTTP 是一种协议,允许 WEB 服务器和浏览器通过互联网进行发送和接受数据。 想对 HTTP 进行详细的了解,可以找下其他文章。 我们在网上能看到的界面...

Swoole WebSocket 的应用

2019-05-15
阅读 8 分钟
3k
概述 这是关于 Swoole 学习的第三篇文章:Swoole WebSocket 的应用。 第二篇:Swoole Task 的应用 第一篇:Swoole Timer 的应用 什么是 WebSocket ? WebSocket 是一种在单个TCP连接上进行全双工通信的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 在 WebSocket A...

Swoole Task 的应用

2019-05-15
阅读 5 分钟
3k
概述 这是关于 Swoole 学习的第二篇文章:Swoole Task 的应用。 第一篇:Swoole Timer 的应用 Swoole 异步Task,主要实现调用异步任务的执行。 常用的场景:异步支付处理、异步订单处理、异步日志处理、异步发送邮件/短信等。 Swoole 的实现方式是 worker 进程处理数据请求,分配给 task 进程执行。 官方介绍: task 底...

Swoole Timer 的应用

2019-05-15
阅读 3 分钟
3.9k
推荐大家读一下《Linux 高性能服务器编程》这本书。我有这本书的PDF版,需要的可以关注公众号,回复 “Linux 高性能服务器编程” 即可获取。

三个水桶等分8升水的问题

2019-05-13
阅读 2 分钟
2.9k
有三个容积分别为3升、5升、8升的水桶,其中容积为8升的水桶中装满了水,容积为3升和容积为5升的水桶都是空的。三个水桶都没有刻度,现在需要将大水桶中的8升水等分成两份,每份都是4升水,附加条件是只能这三个水桶,不能借助其他辅助容器。

系统的讲解 - PHP 浮点数高精度运算

2019-05-10
阅读 3 分钟
8.8k
关于 PHP 浮点数运算,特别是金融行业、电子商务订单管理、数据报表等相关业务,利用浮点数进行加减乘除时,稍不留神运算结果就会出现偏差,轻则损失几十万,重则会有信誉损失,甚至吃上官司,我们一定要引起高度重视!

系统的讲解 - PHP 接口签名验证

2019-05-10
阅读 8 分钟
7.5k
概览 工作中,我们时刻都会和接口打交道,有的是调取他人的接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证。 在设计签名验证的时候,一定要满足以下几点: 可变性:每次的签名必须是不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签名是唯一的。 完整性:能够对传入数据进行验证,防止...

系统的讲解 - PHP 缓存技术

2019-05-10
阅读 5 分钟
10.2k
浏览器将请求过的页面存储在客户端缓存中,当访问者再次访问这个页面时,浏览器就可以直接从客户端缓存中读取数据,减少了对服务器的访问,加快了网页的加载速度。

系统的讲解 - PHP WEB 安全防御

2019-05-10
阅读 5 分钟
6.3k
SQL注入攻击是通过WEB表单提交,在URL参数提交或Cookie参数提交,将怀有恶意的“字符串”,提交给后台数据库,欺骗服务器执行恶意的SQL语句。

系统的讲解 - SSO单点登录

2019-05-10
阅读 2 分钟
8k
比如:淘宝网(www.taobao.com),天猫网(www.tmall.com),聚划算(ju.taobao.com),飞猪网(www.fliggy.com)等,这些都是阿里巴巴集团的网站。在这些网站中,我们在其中一个网站登录了,再访问其他的网站时,就无需再进行登录,这就是 SSO 的主要用途。

PHP RSA2 签名算法

2017-05-13
阅读 3 分钟
10.7k
什么是RSA2? RSA2是在原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。 该算法在摘要算法上比SHA1WithRSA有更强的安全能力。 SHA1WithRSA的签名算法会继续提供支持,但为了您的应用安全,强烈建议使用SHA256WithRSA的签名算法。 开发平台算法名称 标准签名算法名称 备注 RSA2 SHA256WithRSA (强...

Linux下编写一个PHP扩展

2017-04-09
阅读 2 分钟
3.2k
假设需求 开发一个叫做 helloWord 的扩展。 扩展里有一个函数,helloWord()。 {代码...} 本地环境 PHP版本:5.6.9 系统:Linux CentOS release 6.5 (Final) 最终效果 实现流程 第一步: {代码...} 如图: 第二步: {代码...} 如图: 第三步: {代码...} 如图: {代码...} 如图: {代码...} 如图: 第四步: {代码...} 第...

PHP fastcgi_finish_request 方法

2017-03-31
阅读 2 分钟
4.7k
本文介绍,PHP运行在FastCGI模式时,FPM提供的方法:fastcgi_finish_request。 在说这个方法之前,我们先了解PHP有哪些常用的运行模式? PHP运行模式 CGI 通用网关接口 / Common Gateway Interface CGI已经是比较老的模式了,这几年都很少用了。 介绍:每有一个用户请求,都会先要创建CGI的子进程,然后处理请求,处理完...

PHP扩展 Mysql 与 Mysqli

2017-03-23
阅读 2 分钟
3.5k
PHP开发中,使用Mysql扩展来链接Mysql数据库进行增删改查等操作。 在选择Mysql扩展的时候,官方提供了两种: MySQL 原始版。 [链接] 从 PHP 5.5.0 起这个扩展已经被废弃,并且从 PHP 7.0.0. 开始被移除。 作为替代,可以使用 mysqli 或者 PDO_MySQL 扩展代替。 MySQL 增强版。 [链接] mysqli扩展允许我们访问MySQL 4.1及...

PHP扩展 Mongo 与 MongoDB

2017-03-10
阅读 2 分钟
4.7k
PHP开发中,使用Mongo扩展来链接MongoDB资源进行增删改查等操作。 在选择Mongo扩展的时候,官方提供了两种: 第一种:[链接] 第二种:[链接] 在第二种的界面上,官方提示:This package has been superseded, but is still maintained for bugs and security fixes。 大意就是说,这个包已经被取代了,但仍然保持漏洞和...

Redis常见7种使用场景(PHP实战)

2017-02-24
阅读 5 分钟
11k
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 本篇文章,主要介绍利用PHP使用Redis,主要的应用场景。 简单字符串缓存实战 {代码...} 简单队列实战 {代码...} 简单发布订阅实战 {代码...} {代码...} 简单计数器实战 {代码...} 排行榜实战 {代...

PHP编码规范

2017-02-10
阅读 3 分钟
4.1k
为什么需要编码规范? 为了提高工作效率,保证开发的有效性和合理性。 为了提高代码可读性和可重复利用性,从而节约沟通成本。 本文主要参考了 PEAR 规范,并进行适当的简化和调整。 主要介绍,命名规范、注释规范、代码风格。 文件标记 所有PHP文件,代码标记均使用完整的PHP标签,不建议使用短标签。 {代码...} 文件格...

PHP_DOC 实时生成 API 文档

2017-01-22
阅读 1 分钟
11.3k
随着API的迅速发展,如何编写出更加规范的API文档说明则显的尤为重要。 你是否还通过手写的方式来生成和编写这些文档呢? 那么你就OUT啦! 工欲善其事,必先利其器。 本文分享一款工具:PHP_DOC。 可在线实时查看API接口的参数、返回和说明,无须手动维护文档。 背景 你还在为维护 API文档 而烦恼吗? 维护 客户端 接口...