atournayre/phparkitect-rules

为 Symfony 和 API Platform 的 phparkitect/phparkitect 提供额外的规则

0.1.0 2024-06-09 19:58 UTC

This package is auto-updated.

Last update: 2024-09-09 20:26:18 UTC


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 许可证。