effiana / doctrine-behaviors
Doctrine行为特性
v2.0.7
2020-08-30 23:57 UTC
Requires
- php: ^7.2|^8.0
- doctrine/common: ^2.7|^3.0
- doctrine/dbal: ^2.9
- doctrine/orm: ^2.7
- doctrine/persistence: ^1.3.4|^2.0
- nette/utils: ^3.0
- ramsey/uuid: ^3.9|^4.0
- symfony/cache: ^4.4|^5.1
- symfony/dependency-injection: ^4.4|^5.1
- symfony/framework-bundle: ^4.4|^5.1
- symfony/http-kernel: ^4.4|^5.1
- symfony/polyfill-php80: ^1.18
- symfony/security-core: ^4.4|^5.1
- symfony/string: ^5.0
- symfony/translation-contracts: ^2.1
- symplify/package-builder: ^8.2
Requires (Dev)
- ext-pdo_mysql: *
- ext-pdo_pgsql: *
- ext-pdo_sqlite: *
- doctrine/annotations: ^1.8
- doctrine/doctrine-bundle: ^2.0
- jakub-onderka/php-parallel-lint: ^1.0
- phpstan/phpstan: ^0.12.40
- phpstan/phpstan-doctrine: ^0.12.15
- phpstan/phpstan-phpunit: ^0.12.11
- phpunit/phpunit: ^8.5|^9.2
- psr/log: ^1.1
- rector/rector: ^0.7.33
- slevomat/coding-standard: ^6.3.11
- symplify/changelog-linker: ^8.2
- symplify/easy-coding-standard: ^8.2
- symplify/phpstan-extensions: ^8.2
This package is auto-updated.
Last update: 2024-09-14 19:09:38 UTC
README
这个PHP库是一组特性和接口,用于向Doctrine实体和仓库添加行为。
它目前处理以下行为:
安装
composer require knplabs/doctrine-behaviors
用法
您只需定义一个Doctrine实体
- 实现了接口
- 添加一个特性
对于像树这样的某些行为,您可以使用仓库特性
<?php declare(strict_types=1); namespace App\Repository; use Doctrine\ORM\EntityRepository; use Knp\DoctrineBehaviors\ORM\Tree\TreeTrait; final class CategoryRepository extends EntityRepository { use TreeTrait; }
就是这样!
现在您有一个工作正常的Category
,它具有以下行为。
PHPStan
一个PHPStan扩展可用,提供以下功能
- 为
TranslatableInterface::getTranslations()
和TranslatableInterface::getNewTranslations()
提供正确的返回类型 - 为
TranslatableInterface::translate()
提供正确的返回类型 - 为
TranslationInterface::getTranslatable()
提供正确的返回类型
在您的项目PHPStan配置中包含phpstan-extension.neon
# phpstan.neon includes: - vendor/knplabs/doctrine-behaviors/phpstan-extension.neon
贡献的3步
-
每个拉取请求一个功能
-
新功能需要测试
-
测试和静态分析必须通过
vendor/bin/phpunit composer fix-cs composer phpstan
将1.x升级到2
1和2之间有很多变化,但请放心。此包使用Rector,它会为您处理升级。
composer require rector/rector --dev vendor/bin/rector process src --config vendor/rector/rector/config/set/doctrine-behaviors-20.yaml