teamq-ec / teamq-doctrine-behaviors
Doctrine 行为特性为 Symfony:可翻译
v1.0.0
2024-05-30 05:12 UTC
Requires
- php: >=8.1
- doctrine/common: ^3.3
- doctrine/dbal: ^3.3
- doctrine/doctrine-bundle: ^2.7.2
- doctrine/orm: ^2.12
- doctrine/persistence: ^2.5|^3.0
- nette/utils: ^3.2
- ramsey/uuid: ^4.2
- symfony/cache: ^6.0|^7.0
- symfony/dependency-injection: ^6.0|^7.0
- symfony/framework-bundle: ^6.0|^7.0
- symfony/http-kernel: ^6.0|^7.0
- symfony/security-bundle: ^6.0|^7.0
- symfony/string: ^6.0|^7.0
- symfony/translation-contracts: ^2.4|^3.0
Requires (Dev)
- ext-pdo_mysql: *
- ext-pdo_pgsql: *
- ext-pdo_sqlite: *
- doctrine/annotations: ^1.13
- 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: ^1.0.0
- 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
README
实现梦想
Doctrine 行为
这个 PHP 库是一系列特性接口的集合,为 Doctrine 实体和存储库添加了可翻译行为,基于 knplabs/doctrine-behaviors 包
它目前处理
安装
composer teamq-ec/teamq-doctrine-behaviors
使用方法
您只需定义一个 Doctrine 实体
- 实现接口
- 添加特性
成功了!
现在您有一个像样的 Category
行为
PHPStan
有一个 PHPStan 扩展可用,并提供以下功能
- 为
TranslatableInterface::getTranslations()
和TranslatableInterface::getNewTranslations()
提供正确的返回类型 - 为
TranslatableInterface::translate()
提供正确的返回类型 - 为
TranslationInterface::getTranslatable()
提供正确的返回类型
在您的项目 PHPStan 配置中包含 phpstan-extension.neon
# phpstan.neon includes: - vendor/teamq-ec/teamq-doctrine-behaviors/phpstan-extension.neon
贡献的3步
-
每个 pull-request 一个特性
-
新特性需要测试
-
测试和静态分析必须通过
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