prestashop/phpstan-prestashop
Composer 安装命令:
composer require prestashop/phpstan-prestashop
包简介
PrestaShop extension for PHPStan
README 文档
README
Content
This PHPStan extension adds custom rules to PHPStan:
- ClassConstantsMustHaveVisibilityRule
- UseStrictTypesForNewClassesRule
- UseTypeHintForNewMethodsRule
- UseTypedReturnForNewMethodsRule
Installation
Install the dependencies with Composer:
composer install
Tests
Install the dev dependencies with Composer:
composer install --dev
Run tests using PHPUnit:
vendor/bin/phpunit -c tests/phpunit.xml tests
Rules are tested using PHPStan RuleTestCase.
Run static analysis with PHPStan:
vendor/bin/phpstan analyse src tests/Rules -l 5
Extension is validated using a real PHPStan phar
bash tests/Acceptance/run.sh
Use in a project
To use this extension, first require it in Composer:
composer require --dev prestashop/phpstan-prestashop
Then you need to include extension.neon in your project's PHPStan config:
includes: - vendor/prestashop/phpstan-prestashop/extension.neon
Required settings
UseStrictTypesForNewClassesRule
Rule UseStrictTypesForNewClassesRule requires loading of a configuration asset.
You need to provide a service that is an instance of PHPStanForPrestaShop\PHPConfigurationLoader\ConfigurationLoaderInterface,
named @strictTypesForNewClassesRuleConfigurationFileLoader. It should load an array of classes for which
the UseStrictTypesForNewClassesRule should not be applied.
There is two available implementations: PHPStanForPrestaShop\PHPConfigurationLoader\ArrayConfigurationLoader
and PHPStanForPrestaShop\PHPConfigurationLoader\PHPConfigurationFileLoader.
Example with PHPConfigurationFileLoader:
services: strictTypesForNewClassesRuleConfigurationFileLoader: class: PHPStanForPrestaShop\PHPConfigurationLoader\PHPConfigurationFileLoader arguments: - .github/workflows/phpstan/exclude-class-list.php
UseTypedReturnForNewMethodsRule
Rule UseTypedReturnForNewMethodsRule requires loading of a configuration asset.
You need to provide a service that is an instance of PHPStanForPrestaShop\PHPConfigurationLoader\ConfigurationLoaderInterface,
named @returnTypesForNewMethodsRuleConfigurationFileLoader. It should load an array of class methods for which
the UseTypedReturnForNewMethodsRule should not be applied.
There is two available implementations: PHPStanForPrestaShop\PHPConfigurationLoader\ArrayConfigurationLoader
and PHPStanForPrestaShop\PHPConfigurationLoader\PHPConfigurationFileLoader.
Example with PHPConfigurationFileLoader:
services: returnTypesForNewMethodsRuleConfigurationFileLoader: class: PHPStanForPrestaShop\PHPConfigurationLoader\PHPConfigurationFileLoader arguments: - .github/workflows/phpstan/exclude-return-functions-list.php
UseTypeHintForNewMethodsRule
Similarly to UseTypedReturnForNewMethodsRule, rule UseTypeHintForNewMethodsRule requires loading of an instance of PHPStanForPrestaShop\PHPConfigurationLoader\ConfigurationLoaderInterface,
named @typeHintsForNewMethodsRuleConfigurationFileLoader. It should load an array of class methods for which
the UseTypeHintForNewMethodsRule should not be applied.
There is two available implementations: PHPStanForPrestaShop\PHPConfigurationLoader\ArrayConfigurationLoader
and PHPStanForPrestaShop\PHPConfigurationLoader\PHPConfigurationFileLoader.
Example with PHPConfigurationFileLoader:
services: typeHintsForNewMethodsRuleConfigurationFileLoader: class: PHPStanForPrestaShop\PHPConfigurationLoader\PHPConfigurationFileLoader arguments: - .github/workflows/phpstan/exclude-typehint-functions-list.php
prestashop/phpstan-prestashop 适用场景与选型建议
prestashop/phpstan-prestashop 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.88M 次下载、GitHub Stars 达 6, 最近一次更新时间为 2021 年 01 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 prestashop/phpstan-prestashop 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 prestashop/phpstan-prestashop 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1.88M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 27
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-11