memio / linter
Memio 的代码检查器,一组检查模型是否存在语法错误的约束
v3.0.0
2024-08-14 19:40 UTC
Requires
- php: ^7.2 || ^8.0
- memio/model: ^3.0
- memio/validator: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.10
- phpspec/phpspec: ^6.1 || ^7.0
This package is auto-updated.
Last update: 2024-09-14 19:47:44 UTC
README
一套 Memio 约束,用于检查 Memio 模型 中的语法错误等。
安装
使用 Composer 安装
$ composer require memio/linter:^3.0
示例
通常我们需要安装 Memio 并使用它的 Build::linter()
方法来获取代码检查器验证器。
另一种选择是手动构建验证器,如下所示
<?php require __DIR__.'/vendor/autoload.php'; use Memio\Validator\Constraint\ArgumentCannotBeScalar; use Memio\Validator\Constraint\CollectionCannotHaveNameDuplicates; use Memio\Validator\Constraint\ConcreteObjectMethodsCannotBeAbstract; use Memio\Validator\Constraint\ContractMethodsCanOnlyBePublic; use Memio\Validator\Constraint\ContractMethodsCannotBeFinal; use Memio\Validator\Constraint\ContractMethodsCannotBeStatic; use Memio\Validator\Constraint\ContractMethodsCannotHaveBody; use Memio\Validator\Constraint\MethodCannotBeAbstractAndHaveBody; use Memio\Validator\Constraint\MethodCannotBeBothAbstractAndFinal; use Memio\Validator\Constraint\MethodCannotBeBothAbstractAndPrivate; use Memio\Validator\Constraint\MethodCannotBeBothAbstractAndStatic; use Memio\Validator\Constraint\ObjectArgumentCanOnlyDefaultToNull; use Memio\Validator\ModelValidator\ArgumentValidator; use Memio\Validator\ModelValidator\CollectionValidator; use Memio\Validator\ModelValidator\MethodValidator; use Memio\Validator\ModelValidator\ContractValidator; use Memio\Validator\ModelValidator\ObjectValidator; use Memio\Validator\ModelValidator\FileValidator; use Memio\Validator\Validator; $argumentValidator = new ArgumentValidator(); $argumentValidator->add(new ArgumentCannotBeScalar()); $collectionValidator = new CollectionValidator(); $collectionValidator->add(new CollectionCannotHaveNameDuplicates()); $methodValidator = new MethodValidator($argumentValidator, $collectionValidator); $methodValidator->add(new MethodCannotBeAbstractAndHaveBody()); $methodValidator->add(new MethodCannotBeBothAbstractAndFinal()); $methodValidator->add(new MethodCannotBeBothAbstractAndPrivate()); $methodValidator->add(new MethodCannotBeBothAbstractAndStatic()); $contractValidator = new ContractValidator($collectionValidator, $methodValidator); $contractValidator->add(new ContractMethodsCanOnlyBePublic()); $contractValidator->add(new ContractMethodsCannotBeFinal()); $contractValidator->add(new ContractMethodsCannotBeStatic()); $contractValidator->add(new ContractMethodsCannotHaveBody()); $objectValidator = new ObjectValidator($collectionValidator, $methodValidator); $objectValidator->add(new ConcreteObjectMethodsCannotBeAbstract()); $objectValidator->add(new ObjectArgumentCanOnlyDefaultToNull()); $fileValidator = new FileValidator($contractValidator, $objectValidator); $linter = new Validator(); $linter->add($argumentValidator); $linter->add($collectionValidator); $linter->add($methodValidator); $linter->add($contractValidator); $linter->add($objectValidator); $linter->add($fileValidator); $linter->validator($anyModels);
查看 主仓库 了解 Medio 的全部功能。
想要了解更多吗?
Memio 使用 phpspec,这意味着测试也提供了文档。如果您还不确定,请克隆此仓库并运行以下命令
$ composer install $ ./vendor/bin/phpspec run -n -f pretty
您可以使用以下方法查看当前和过去的版本:
git tag
命令- GitHub 上的发行页面
- 列出版本之间变化的文件
最后是一些元文档