teamq-ec/teamq-doctrine-behaviors

Doctrine 行为特性为 Symfony:可翻译

v1.0.0 2024-05-30 05:12 UTC

This package is auto-updated.

Last update: 2024-08-30 05:56:25 UTC


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