atournayre / phparkitect-rules
为 Symfony 和 API Platform 的 phparkitect/phparkitect 提供额外的规则
0.1.0
2024-06-09 19:58 UTC
Requires
- php: >=8.1
- phparkitect/phparkitect: ^0.3
- webmozart/assert: ^1.11
Requires (Dev)
- phpstan/phpstan: ^1.10.44
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-strict-rules: ^1.5.2
- phpunit/phpunit: ^10.5
README
该项目围绕 PHP 类的架构规则概念构建,重点关注命名空间依赖和类命名约定。
安装
composer require --dev atournayre/phparkitect-rules
用法
规则必须在 phparkitect 配置文件中使用。
以下是如何使用的示例
// phparkitect.php use Arkitect\ClassSet; use Arkitect\CLI\Config; use Arkitect\Expression\ForClasses\IsFinal; use Arkitect\Expression\ForClasses\ResideInOneOfTheseNamespaces; use Arkitect\Rules\Rule; use Atournayre\PHPArkitect\Builder\RuleBuilder; use Atournayre\PHPArkitect\Rules\ListenerMustBeLoggableLog; use Atournayre\PHPArkitect\Set\Sets; return static function (Config $config): void { $classSet = ClassSet::fromDir(__DIR__ . '/src'); $rules = RulesBuilder::create ->add(new ListenerMustBeLoggableLog) // Add rules for Symfony Command ->set(Sets::symfonyCommand()) // Add rules for Doctrine Naming ->set(Sets::doctrineUniformNaming()) // Add regular rules ->add( Rule::allClasses() ->that(new ResideInOneOfTheseNamespaces('App')) ->should(new IsFinal()) ->because('All classes in App namespace must be final') ) ->rules(); $config->add($classSet, ...$rules); };
您可以使用集合或单独使用规则。
贡献
欢迎贡献!
许可
本项目采用 MIT 许可证。