本文介绍了 PHP 依赖注入的概念及其实现方式。依赖注入是一种设计模式,通过将对象依赖从内部创建转为外部传入,降低耦合度,提升代码可测试性和可维护性。文章通过对比示例展示了非依赖注入和依赖注入的区别,并详细讲解了三种实现方式:构造函数注入(最常见)、Setter 方法注入(适用于可选依赖)和接口注入(PHP中较少见)。最后解析了 ThinkPHP 框架的依赖注入机制,其核心是通过容器和反射自动解析构造函数及方法参数,实现自动装配。ThinkPHP 的特色在于不仅支持构造函数注入,还支持普通方法的依赖注入。
辰风沐阳 阅读 216 2026-04-07
工厂模式是 PHP 中常用的创建型设计模式,主要分为三种:简单工厂、工厂方法和抽象工厂。简单工厂通过参数判断创建对象,结构简单但违反开闭原则;工厂方法为每个产品创建对应工厂类,符合开闭原则但类数量增多;抽象工厂用于创建相关联的产品族,保证一致性但扩展困难。实际应用场景包括数据库连接、日志系统和支付网关等。使用时要避免过度设计,简单对象可直接实例化。代码示例展示了三种模式的实现方式,分别通过参数、工厂接口和产品族来创建对象。
辰风沐阳 阅读 190 2026-04-06
PHP 多态是面向对象编程的核心特性,通过继承、接口和抽象类实现。它允许同一方法在不同对象上表现出不同行为,提高代码的灵活性和扩展性。继承方式中,子类重写父类方法;接口要求实现类提供具体方法;抽象类可定义部分实现。多态仅对动态绑定的 $this->method() 有效,而静态绑定的 self::method() 不受影响。其优势包括代码复用、灵活扩展和统一接口管理。
辰风沐阳 阅读 195 2026-03-30
在 PHP 中,字符串可以通过多种方式定义和界定。最常见的字符串定界符有以下几种:单引号、双引号、Heredoc 语法、Nowdoc 语法
辰风沐阳 阅读 840 2024-02-03
生成压缩包、读取压缩包也是开发中比较常用的功能。比如:在后台批量下载商品的二维码,此时应该将这些二维码添加到压缩包,导出一个压缩包文件。读取压缩包可用于将多个解压缩到服务器上,然后对这些文件进行逻辑处理
辰风沐阳 阅读 2526 2023-01-10
phpMailer 是一个非常强大的 php 发送邮件扩展包,可以设定发送邮件地址、回复地址、邮件主题、html邮件内容和上传附件等,使用起来非常方便。它目前有着有近 4 千万的下载量,是 PHP 开发者实现邮件发送功能的首选扩展包
辰风沐阳 阅读 2725 2023-01-07
生成二维码是平时项目开发中使用频率很高的一个功能,PHP生成二维码主流的扩展包为 endroid/qr-code,这个扩展包使用起来非常方便快捷,为了方便快速使用,本次特此记录一下,以后需要生成二维码直接从本文复制即可
辰风沐阳 阅读 3891 2022-12-19
经纬度坐标相关计算方法在项目中使用的场景有很多,比如: 计算两个经纬度坐标间的距离,根据距离进行排序,经纬度范围查询等。本文记录封装的方法以及注意事项,以便下次可以准确无误的快速上手使用
辰风沐阳 阅读 2279 2022-09-05
最近在做一个手机 APP 项目,需要用到实名认证接口,这是公司在阿里云云市场找的一个接口(非阿里云官方接口)。传入姓名,身份证号二要素身份校验,高质量接口,直连接口实时核验,毫秒级响应,零缓存,校验验证。
辰风沐阳 阅读 2686 2022-08-03
Laravel Valet 是 macOS 极简主义者的开发环境。Laravel Valet 将您的 mac 配置为在您的机器启动时始终在后台运行 Nginx,然后使用 Dnsmasq,Valet 代理 *.test 域上的所有请求指向安装在本地计算机上的站点
辰风沐阳 阅读 2962 2022-07-31