lordsimal / cakephp-psalm
为 CakePHP 定制的 Psalm 插件
2.0.0
2023-09-10 08:08 UTC
Requires
- ext-simplexml: *
- cakephp/cakephp: ^5.0.0
- vimeo/psalm: ^5.0
Requires (Dev)
- codeception/codeception: ^5
- phpunit/phpunit: ^10.1
- psalm/plugin-phpunit: ^0.16.0
- squizlabs/php_codesniffer: ^3.3
- weirdan/codeception-psalm-module: ^0.14
- weirdan/prophecy-shim: ^2.0
README
概述
此插件为 Psalm 中 CakePHP 特定方法提供正确的返回类型。
快速开始
请参考 完整的 Psalm 文档 以获取如何在项目中使用 Psalm 的更详细指南。
首先,您需要安装 Psalm 基础包并创建一个 psalm.xml
composer require --dev vimeo/psalm ./vendor/bin/psalm --init
接下来,您需要引入此包并在 Psalm 中启用它
composer require --dev lordsimal/cakephp-psalm
./vendor/bin/psalm-plugin enable lordsimal/cakephp-psalm
最后,您可以尝试使用它
./vendor/bin/psalm
工作原理
目前,仅修正以下返回类型
Cake\ORM\Locator\LocatorInterface::get()
Cake\ORM\Locator\LocatorAwareTrait::fetchTable()
此功能可在 src/Type/TableLocatorHandler.php
中找到
其中,getClassLikeNames()
通知 Psalm 需要更改哪些类的返回类型。
在 getMethodReturnType()
中,我们检查当前调用的是哪个方法,并获取该调用中的第一个参数值。
使用该值,我们获取运行时返回的 "真实" FQCN 表,并告诉 Psalm 使用该值而不是默认的 Cake\ORM\Table
。
需要帮助
我非常欢迎与此插件相关的以下方面的帮助
- 测试
- 包括更多返回类型,例如 CakeDC/cakephp-phpstan 已为 PHPStan 所做