effiana / doctrine-behaviors

Doctrine行为特性

安装: 1

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 291

类型:symfony-bundle


README

Build Status Downloads

这个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