otobank / phpstan-doctrine-criteria
PHPStan 的 Doctrine Criteria 扩展
0.5.0
2023-03-01 23:52 UTC
Requires
- php: ^7.2
- doctrine/collections: ^1.8
- doctrine/persistence: ^2.5
- nikic/php-parser: ^4.13
- otobank/doctrine-target-aware-criteria: ^0.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-doctrine: ^1.3
Requires (Dev)
- doctrine/common: ^3.4
- doctrine/dbal: ^2.7.1
- doctrine/orm: ^2.7.5
- friendsofphp/php-cs-fixer: ^2.14
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^8
- symfony/cache: ^5.4
README
本扩展提供以下功能
- 验证应用了标准的结果的实体字段。
- 依赖 phpstan-doctrine,并包含其功能。
用法
composer require otobank/doctrine-target-aware-criteria
composer require --dev otobank/phpstan-doctrine-criteria
includes: - vendor/otobank/phpstan-doctrine-criteria/extension.neon - vendor/otobank/phpstan-doctrine-criteria/rules.neon
配置
parameters: doctrine: objectManagerLoader: bootstrap/phpstan_doctrine_manager.php
参见: https://github.com/phpstan/phpstan-doctrine
必须使用自定义标准。
FooCriteria
namespace App\Criteria; use App\Entity\Foo; use Otobank\PHPStan\Doctrine\Criteria; class FooCriteria extends Criteria { public static function getTargetClass() : string { return Foo::class; } }
使用 FooCriteria
namespace App\Entity; use App\Criteria\FooCriteria; class Bar { /** * @var \Doctrine\Common\Collections\Collection * * @ORM\OneToMany(targetEntity="Foo", mappedBy="bar") */ private $foos; public function getFilteredFoos() { $criteria = FooCriteria::create(); $criteria = $criteria ->where($criteria->expr()->eq('fieldX', 1)) // Check if fieldX is defined in Foo class ; return $this->foos->matching($criteria); } }
作者
Toshiyuki Fujita - tfujita@otobank.co.jp - https://github.com/kalibora
许可
在 MIT 许可下发布 - 有关详细信息,请参阅 LICENSE 文件
OTOBANK Inc.