Laravel IDE Helper 使用笔记

📦 一、包简介 项目地址: https://github.com/barryvdh/laravel-ide-helper 作者:Barry vd. Heuvel 最新版本:v3.x支持 Laravel 10+ ✅ 作用 laravel-ide-helper 是一个为 Laravel 项目生成 PHPDocs 的开发辅助工具。它可以让你的 IDE (PhpStorm / VS Code )能够: 智能补全 Laravel Facade 方法 识别 Eloquent 模型的属性与关系 添加 IoC 容器解析类的类型提示 自动生成 macro / mixin / Fluent 方法文档 🔍 说白了:让 IDE 更懂 Laravel。 ⚙️ 二、安装与配置 1. 安装 composer require --dev barryvdh/laravel-ide-helper 🛠️ 三、常用命令 1. Facade PHPDocs php artisan ide-helper:generate 🔹 生成 _ide_helper.php,使 IDE 识别如 DB, Auth, Cache 等 Facade。 ...

2025年10月28日

PHP代码质量工具之Laravel Pint

作为开发人员,我们有责任尽可能保持代码的最佳状态。这不仅有助于维护和扩展代码,还能避免出现错误。 在 PHP 中,有许多工具可以帮助我们实现高质量和无错误的代码,包括 PHP Mess detector、PHP CodeSniffer、PHPStan 和 Psalm。这些工具都很不错,但要集成到 Laravel 项目中并不容易。 后面我们会介绍五款专门用于帮助你及早捕捉错误、提高 Laravel 代码质量、确保编码风格统一的工具,让你在 Laravel 项目中轻松遵循最佳实践,现在我们先来说说 Laravel Pint。 我们还将介绍文本编辑器集成和使用这些工具的持续集成。 前提条件 本教程假定您已设置好 PHP 开发环境。本教程还假定您有 PHP 和 Laravel 方面的经验。 要充分利用本教程,我强烈建议您跟读本教程,以便亲自了解和测试这些工具是如何工作的。 为此,请克隆以下 repo:food-order-app-laravel-tdd: git clone https://github.com/anchetaWern/food-order-app-laravel-tdd cd food-order-app-laravel-tdd git checkout tdd 接下来,将 .env.example 文件重命名为 .env,并用本地数据库密码更新 DB_PASSWORD。 完成上述操作后,执行以下命令设置项目: composer install npm 安装 php artisan config:cache php artisan migrate php artisan db:seed 这样就能安装所有的 composer 和前端依赖项,更新配置,迁移数据库并为其播种。 我建议你安装 GitHub for desktop 或其他 Git 图形用户界面工具,这样你就能看到这些工具对你的代码做了什么。 什么是静态代码分析? 静态分析允许您在不运行代码的情况下检查代码是否存在问题。它基本上是读取代码、理解代码并将代码与特定规则进行比较,以验证代码的正确性。下面是一个例子: ...

2023年8月10日

PHP 8.2:动态属性被弃用

在PHP类中,有可能动态地设置和检索未被声明的类属性。这些属性不遵守特定的(类似于类型化的属性),它需要使用get()和set()魔法方法来有效地防止或控制动态属性的设置和检索方式。 class User { private int $uid; } $user = new User(); $user->name = 'Foo'; 在上面的片段中,User类没有声明一个名称为name的属性,但由于允许动态属性,PHP允许设置它。 虽然动态属性提供了创建类的灵活性,如没有严格的类声明的价值对象,但它为应用程序中潜在的错误和意外行为提供了可能性。例如,由于PHP默许所有的动态属性,设置属性的语句中的一个错别字可能会被忽略。 在 PHP 8.2 及以后的版本中,为未声明的类属性设置一个值是被废弃的,并且在应用程序执行过程中第一次设置该属性时,会发出废弃通知。 class User { private int $uid; } $user = new User(); $user->name = 'Foo'; Deprecated: Creation of dynamic property User::$name is deprecated in ... on line ... 从类中设置属性也会发出废弃通知: class User { public function __construct() { $this->name = 'test'; } } new User(); Deprecated: Creation of dynamic property User::$name is deprecated in ... on line ... 动态属性有合法的用例,比如从动态JSON响应中得到的值对象,或者允许任意值的配置对象。 理想情况下,类应该在类中声明动态属性以避免废弃通知。不需要用一个属性类型来声明该属性。 豁免的动态属性模式 这种废弃有三种例外情况。使用下面的方法之一可以避免废弃的通知。 Classes with #[AllowDynamicProperties] attribute. stdClass and its sub-classes Classes with __get and __set magic methods 参考: https://php.watch/versions/8.2/dynamic-properties-deprecated#exempt

2023年7月5日