PHP 依赖注入实现原理

PHP

本文介绍了 PHP 依赖注入的概念及其实现方式。依赖注入是一种设计模式,通过将对象依赖从内部创建转为外部传入,降低耦合度,提升代码可测试性和可维护性。文章通过对比示例展示了非依赖注入和依赖注入的区别,并详细讲解了三种实现方式:构造函数注入(最常见)、Setter 方法注入(适用于可选依赖)和接口注入(PHP中较少见)。最后解析了 ThinkPHP 框架的依赖注入机制,其核心是通过容器和反射自动解析构造函数及方法参数,实现自动装配。ThinkPHP 的特色在于不仅支持构造函数注入,还支持普通方法的依赖注入。

辰风沐阳 阅读 216 2026-04-07

PHP 设计模式之工厂模式

PHP

工厂模式是 PHP 中常用的创建型设计模式,主要分为三种:简单工厂、工厂方法和抽象工厂。简单工厂通过参数判断创建对象,结构简单但违反开闭原则;工厂方法为每个产品创建对应工厂类,符合开闭原则但类数量增多;抽象工厂用于创建相关联的产品族,保证一致性但扩展困难。实际应用场景包括数据库连接、日志系统和支付网关等。使用时要避免过度设计,简单对象可直接实例化。代码示例展示了三种模式的实现方式,分别通过参数、工厂接口和产品族来创建对象。

辰风沐阳 阅读 190 2026-04-06

PHP 面向对象多态的理解

PHP

PHP 多态是面向对象编程的核心特性,通过继承、接口和抽象类实现。它允许同一方法在不同对象上表现出不同行为,提高代码的灵活性和扩展性。继承方式中,子类重写父类方法;接口要求实现类提供具体方法;抽象类可定义部分实现。多态仅对动态绑定的 $this->method() 有效,而静态绑定的 self::method() 不受影响。其优势包括代码复用、灵活扩展和统一接口管理。

辰风沐阳 阅读 195 2026-03-30

PHP 字符串定界符

PHP

在 PHP 中,字符串可以通过多种方式定义和界定。最常见的字符串定界符有以下几种:单引号、双引号、Heredoc 语法、Nowdoc 语法

辰风沐阳 阅读 840 2024-02-03

ueditor 富文本编辑器

HTML PHP

UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本 web 编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。UEditor 官方不再积极维护,并且作者也将持续优化和修复UEditor 停更带来的一些问题

辰风沐阳 阅读 5914 2023-01-11

PHP 生成压缩包、读取压缩包

PHP

生成压缩包、读取压缩包也是开发中比较常用的功能。比如:在后台批量下载商品的二维码,此时应该将这些二维码添加到压缩包,导出一个压缩包文件。读取压缩包可用于将多个解压缩到服务器上,然后对这些文件进行逻辑处理

辰风沐阳 阅读 2526 2023-01-10

PHP 使用 PHPMailer 发送电子邮件

PHP

phpMailer 是一个非常强大的 php 发送邮件扩展包,可以设定发送邮件地址、回复地址、邮件主题、html邮件内容和上传附件等,使用起来非常方便。它目前有着有近 4 千万的下载量,是 PHP 开发者实现邮件发送功能的首选扩展包

辰风沐阳 阅读 2725 2023-01-07

PHP生成二维码【endroid/qr-code 4.x】

PHP Composer

生成二维码是平时项目开发中使用频率很高的一个功能,PHP生成二维码主流的扩展包为 endroid/qr-code,这个扩展包使用起来非常方便快捷,为了方便快速使用,本次特此记录一下,以后需要生成二维码直接从本文复制即可

辰风沐阳 阅读 3891 2022-12-19

PHP 经纬度坐标相关计算方法

PHP

经纬度坐标相关计算方法在项目中使用的场景有很多,比如: 计算两个经纬度坐标间的距离,根据距离进行排序,经纬度范围查询等。本文记录封装的方法以及注意事项,以便下次可以准确无误的快速上手使用

辰风沐阳 阅读 2279 2022-09-05

身份实名认证接口【阿里云云市场】

PHP 阿里云

最近在做一个手机 APP 项目,需要用到实名认证接口,这是公司在阿里云云市场找的一个接口(非阿里云官方接口)。传入姓名,身份证号二要素身份校验,高质量接口,直连接口实时核验,毫秒级响应,零缓存,校验验证。

辰风沐阳 阅读 2686 2022-08-03