
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
全局函数和工具类的设计没有定论。使用全局函数或静态工具类都可以。Laravel的Str和Arr类提供了很好的参考。全局函数和工具类在项目中很常用。好的设计让工具代码更易用。今天说说PHP中全局函数和工具类的设计。echo Str::limit("这是一段很长的文本内容", 6) . "\n";echo str_limit("这是一段很长的文本内容", 6) . "\n";echo StringHe
值对象和DTO让数据传递更安全。值对象封装了验证逻辑和不变性,DTO明确定义了数据的结构。在PHP8中,constructor property promotion和readonly让值对象和DTO的实现更简洁。$userData = ['id' => 1, 'name' => '张三', 'email' => 'test@test.com'];值对象和数据传输对象是领域驱动设计中的重要概念。值对
PHP的代码复用方式各有优劣。函数适合无状态工具操作,类继承适合is-a关系,Trait适合水平切分功能,接口定义契约。选择合适的复用方式可以让代码更简洁、更易维护。'是' : '否' . "\n";代码复用是软件工程的核心。PHP提供了多种代码复用方式。今天说说各种代码复用模式的优缺点。return ['id' => $id, 'name' => '张三'];$this->log("从缓存获取用
依赖注入让代码更易测试。测试替身隔离外部依赖。$this->mailer->send($email, '欢迎', "Hello $name!依赖注入让代码更容易测试。测试替身可以隔离外部依赖。今天说说PHP中依赖注入和测试替身的使用。$this->logger->info("用户注册: $email");php // 高层模块不应该依赖低层模块。php // 大接口拆分成小接口。PHP代码依赖注入
资源获取即初始化(RAII,Resource Acquisition Is Initialization)是C++中最重要的编程范式之一。它通过对象的生命周期来管理资源,确保资源在对象构造时获取,在对象析构时释放。这种机制不仅适用于内存管理,还可以管理文件句柄、网络连接、互斥锁等各种资源。RAII的核心思想是将资源的生命周期与对象的生命周期绑定。当对象离开作用域时,无论是正常返回还是异常抛出,析构
智能指针是C++中自动管理动态内存的关键工具。通过RAII机制,智能指针在对象生命周期结束时自动释放内存,避免内存泄漏和悬空指针问题。std::unique_ptr提供独占所有权语义,确保同一时刻只有一个指针拥有资源。它的开销极小,几乎等同于原始指针。C++智能指针与内存管理实践。
常量和枚举的使用原则。常量用于不变的值如配置、状态码。枚举比常量更安全,因为类型检查可以确保只使用有效的值。常量和枚举用于定义固定不变的值。PHP8.1引入的枚举让常量管理更规范。今天说说常量和枚举的用法。'活跃' : '不活跃' . "\n";self::Delivered => '已签收',self::Cancelled => '已取消',self::Shipped => '已发货',self
常量和枚举的使用原则。常量用于不变的值如配置、状态码。枚举比常量更安全,因为类型检查可以确保只使用有效的值。常量和枚举用于定义固定不变的值。PHP8.1引入的枚举让常量管理更规范。今天说说常量和枚举的用法。'活跃' : '不活跃' . "\n";self::Delivered => '已签收',self::Cancelled => '已取消',self::Shipped => '已发货',self
写代码的时候多想想读代码的人会怎么理解,代码的可读性就会好很多。if (empty($user['name'])) throw new Exception('名称不能为空');if (empty($user['name'])) throw new Exception('名称不能为空');今天说说提高PHP代码可读性的方法。mail($user['email'], '欢迎', '...');php
/ 修改后(不受clone修改影响)// 如果没有unset,后面的代码中使用$value会影响数组最后一个元素。// Hello($z还在引用)echo $user->name . "\n";// 空(所有引用都断开)// 10($a不受影响)// 重新绑定,$a不再受影响。$user->name = '克隆修改';// 直接修改了Container内部的data。// unset只断开变量名和







