阿里云 ECS SMTP 发送邮件

因业务需要,今天做了一个简单的邮件发送功能,通过 PHPMailer 来实现。本地测试正常,部署到阿里云 ECS 后,报错:SMTP connect() failed ,本文简单记录下解决方案。 ...

July 10, 2020 · 2 分钟 · 773 字

PHP SM2 国密算法与 CURL SSL 双向认证

最近在对接民生银行的电子账户接口,按照民生的要求,调用接口需要涉及 SM2 国密算法及 SSL 双向认证。目前银行端提供的只有 JAVA 版的 SDK,把 PHP 作为开发语言的我们表示很受伤。本文就针对涉及的两个点进行说明,简单汇总下 PHP 语言中的解决方案。 ...

June 12, 2020 · 5 分钟 · 2461 字

阿里云消息队列AMQP版之延迟消息

近几天在基于阿里云 AMQP 版消息队列开发业务,之所以选择这个而不是阿里云主推的 RocketMQ ,是因为我想用的是 RabbitMQ 。选择阿里云而非自己部署,无非是为了节省运维成本。相对来说官方的 PHP 版本 Demo 非常简陋,而且虽然官方宣传完全兼容 RabbitMQ ,但还是有一些坑的。 ...

May 22, 2020 · 2 分钟 · 926 字

Laravel/Lumen 日志文件无法写入

最近有同事反馈,发现使用 Laravel/Lumen 框架的项目中,日志文件( storage/logs/laravel.log | storage/logs/lumen.log )权限莫名其妙变为 root:root ,导致程序运行时写入失败而报 500 错误。 ...

March 26, 2020 · 2 分钟 · 839 字

数据结构之单链表

数组需要一块连续的内存空间来存储,对内存的要求比较高。而链表恰恰相反,它并不需要一块连续的内存空间,它通过指针将一组零散的内存块串联起来使用。链表结构五花八门,三种最常见的链表结构,它们分别是:单链表、双向链表和循环链表。本文来看最简单、最常用的单链表。 ...

September 1, 2019 · 2 分钟 · 727 字

PHP 之 for 循环

for 循环在很多的编程语言中都被支持,是一种常见的循环用法,也算是我们学习每门编程语言中最基础的知识点。但正是因为基础,所以才容易被忽略,久而久之,甚至会误解。本文 PHPHa 就对 PHP 中的 for 循环进行复习,不求温故而知新,但求能矫枉过正。 ...

August 9, 2019 · 2 分钟 · 992 字

数据结构之数组

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。PHPHa 通过本文简单介绍下数组的定义以及用 PHP 代码模拟数组的相关操作。 ...

August 5, 2019 · 2 分钟 · 840 字

PHP 常用的 11 种设计模式

本文简单介绍下,在 PHP 开发中涉及的常用的设计模式。包含:工厂模式、单例模式、注册器模式、适配器模式、策略模式、数据对象映射模式、观察者模式、原型模式、装饰器模式、迭代器模式、代理模式等。 ...

August 4, 2019 · 6 分钟 · 2913 字

IOC 控制反转与 DI 依赖注入

依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。 ...

August 2, 2019 · 1 分钟 · 358 字

S.O.L.I.D 面向对象设计和编程

SOLID 是 面向对象编程 和 面试对象设计 的五个基本原则,应用这五个原则能创建一个易于维护和扩展的软件系统。SOLID 可以指导代码重构和在迭代的过程中进行代码清扫,以使得软件源代码清晰可读和具有良好的扩展性。在测试驱动开发中是典型应用场景,并且也是敏捷开发和自适应软件开发基本原则的重要组成部分。 ...

August 2, 2019 · 1 分钟 · 308 字