algolia / phpstan-magento
PHPStan Magento 扩展
dev-master
2020-04-07 15:16 UTC
Requires
- php: ^7.1.0
- phpstan/phpstan: ^0.11.6
Requires (Dev)
- bitexpert/phing-securitychecker: ^0.4.0
- captainhook/captainhook: ^4.0
- captainhook/plugin-composer: ^4.0
- phing/phing: ^2.16
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-08 01:07:23 UTC
README
本包为 PHPStan 提供了一些额外的功能,以便使其适用于 Magento 2 项目。
安装
安装 bitexpert/phpstan-magento
的首选方法是使用 Composer。您可以将其作为开发依赖项添加,如下所示
composer.phar require --dev bitexpert/phpstan-magento
将 extension.neon 包含在您的项目 PHPStan 配置中
includes:
- vendor/bitexpert/phpstan-magento/extension.neon
功能
- 此扩展添加了一个类似于 Magento 的生成器,用于生成工厂和代理类。当在 Magento 应用程序的上下文中运行 PHPStan 时,如果您还指向生成的文件文件夹,则不需要此功能。当在模块的上下文中运行 Magento 时,这是必需的,以便 PHPStan 可以获得所有所需类的完整视图。
- 此扩展添加了一个用于“模拟”类的自动加载器。这些是替换 Magento 特定实现的类,用于修复类型提示或接口中的缺失方法等问题。自动加载器将检查扩展中是否存在类、接口或特性。如果存在,它将加载本地版本而不是 Magento 提供的版本。一旦这些问题在 Magento 中得到修复,这些模拟可以再次删除。
- 添加了一个类型扩展,以便
ObjectManager
调用返回正确的返回类型。 - 对于一些类,如
DataObject
或SessionManager
,添加了逻辑以支持魔法方法调用。
已知问题
以下是在使用此扩展时出现的已知问题的列表
PHPStan shim 不会生成工厂、代理等。
这是因为 PHPStan shim 被包含在一个 Phar 存档中,因此不支持覆盖其命名空间中的某些方法。目前已知的问题是手动加载此扩展附带的自定义加载器。
在您的项目中创建一个文件(例如 phpstan.php
),内容如下
<?php \bitExpert\PHPStan\Magento\Autoload\Autoloader::register();
将此包含在 phpstan.neon
的 autoload_files
部分中
parameters: autoload_files: - phpstan.php
贡献
请随意分支并扩展现有功能或添加新功能,并发送带有您更改的拉取请求!为了建立一致的代码质量,请为所有更改提供单元测试,并修改文档。
想要贡献?
如果您觉得有东西可以分享,那么我们非常愿意接受您的贡献。查看 贡献指南 了解如何操作,以及我们对您的期望。
许可
PHPStan Magento Extension 在 MIT 许可下发布。