eightmarq / doctrine-behaviors
Doctrine行为特性
2.7.1
2024-03-06 10:04 UTC
Requires
- php: >=8.1
- doctrine/common: ^3.4
- doctrine/dbal: ^3.7
- doctrine/doctrine-bundle: ^2.11
- doctrine/orm: ^2.17
- doctrine/persistence: ^2.5|^3.0
- nette/utils: ^3.2
- ramsey/uuid: ^4.2
- symfony/cache: ^6.4|^7.0
- symfony/dependency-injection: ^6.4|^7.0
- symfony/framework-bundle: ^6.4|^7.0
- symfony/http-kernel: ^6.4|^7.0
- symfony/security-bundle: ^6.4|^7.0
- symfony/string: ^6.4|^7.0
- symfony/translation-contracts: ^2.4|^3.0
Requires (Dev)
- ext-pdo_mysql: *
- ext-pdo_pgsql: *
- ext-pdo_sqlite: *
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.7.10
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^9.5
- psr/log: ^1.1
- rector/rector: ^0.19
- symplify/easy-ci: ^10.2.9
- symplify/easy-coding-standard: ^10.2.9
- symplify/package-builder: ^10.2.9
- symplify/phpstan-extensions: ^10.2.9
- symplify/phpstan-rules: ^10.2.9
- dev-master
- 2.7.1
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0-beta1
- v2.0.0-alpha4
- v2.0.0-alpha3
- v2.0.0-alpha2
- v2.0.0-alpha1
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.1
- 1.4.0
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-changelog-update
- dev-remove-hardcoded-translatable-referencedColumnName
- dev-php-mrn-rector-demo
This package is auto-updated.
Last update: 2024-09-06 11:12:35 UTC
README
这是一个PHP库,包含了一系列特性接口,用于给Doctrine实体和存储库添加行为。
目前它处理以下行为:
安装
composer require eightmarq/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步贡献方法
-
每个拉取请求1个特性
-
新特性需要测试
-
测试和静态分析必须通过
vendor/bin/phpunit composer fix-cs composer phpstan
从1.x升级到2
1和2之间有很多变化,但不用担心。此包使用Rector,它会为您处理升级。
composer require rector/rector --dev
创建rector.php
配置
vendor/bin/rector init
将Doctrine Behaviors升级集添加到rector.php
use Rector\Core\Configuration\Option; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Rector\Doctrine\Set\DoctrineSetList; return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->import(DoctrineSetList::DOCTRINE_BEHAVIORS_20); };
运行Rector
vendor/bin/rector process src
Docker
用法
- 安装Docker和Docker Compose
- 构建或重新构建服务:
docker compose build
- 创建或启动容器:
docker compose up -d
- 进入
php
容器:docker compose exec php /bin/sh
- 运行命令
composer check-cs
composer phpstan
vendor/bin/phpunit