gacela-project / phpstan-extension
适用于使用 Gacela 的项目的 PHPStan 规则
0.4.0
2024-08-11 17:35 UTC
Requires
- php: >=8.0
- gacela-project/gacela: >=0.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.62
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.6
- psalm/plugin-phpunit: ^0.18
- symfony/var-dumper: ^5.4
- vimeo/psalm: ^5.25
Suggests
- gacela-project/gacela: Gacela helps you build modular PHP applications. It helps normalizing the entry point of a module, without interfering with your domain-business logic.
README
这是一个为 Gacela 框架编写的 PHPStan 扩展。它强制执行模块边界。
有关更多信息,请参阅 主 Gacela 项目。
安装
composer require --dev gacela-project/phpstan-extension
配置
要配置此 PHPStan 扩展,您需要以下两个东西。
基础模块命名空间
假设您所有的模块都在同一个命名空间下。假设您的模块命名空间为
App\Modules\ModuleA
App\Modules\ModuleB
您的模块基础命名空间是 App\Modules
。
排除的命名空间(可选)
如果您有包含可以被任何模块使用的代码的命名空间(例如 App\Shared
),则需要将它们添加到 excludedNamespaces
中。默认:[]
。
更新 PHPStan 配置
更新您项目的 phpstan.neon
文件
includes: - vendor/gacela-project/phpstan-extension/extension.neon parameters: gacela: modulesNamespace: <base module namespace> excludedNamespaces: - excluded - namespaces
示例
无 excludedNamespaces 的示例
includes: - vendor/gacela-project/phpstan-extension/extension.neon parameters: gacela: modulesNamespace: App\Modules
完整示例
includes: - vendor/gacela-project/phpstan-extension/extension.neon parameters: gacela: modulesNamespace: App\Modules excludedNamespaces: - App\Shared
用法
像往常一样运行 PHPStan。它将额外指出任何违反模块边界的违规行为。