kkszymanowski/traitor

将特质使用声明添加到现有的PHP类中

1.1.0 2024-01-29 09:23 UTC

This package is auto-updated.

Last update: 2024-08-29 10:59:59 UTC


README

StyleCI Build Status Latest Stable Version License

一个PHP包,用于自动向指定的类添加 trait use statement

安装

通过composer

composer require kkszymanowski/traitor

使用

  • 基本用法
use Traitor\Traitor;

Traitor::addTrait(FooTrait::class)->toClass(FooClass:class);
  • 添加多个特质
use Traitor\Traitor;

Traitor::addTraits([
    FooTrait::class,
    BarTrait::class,
    BazTrait::class
])->toClass(FooClass::class);

//or

Traitor::addTrait(FooTrait::class)
       ->addTrait(BarTrait::class)
       ->addTrait(BazTrait::class)
       ->toClass(FooClass::class);
  • 检查类是否已使用特质
use Traitor\Traitor;

$alreadyUses = Traitor::alreadyUses(FooClass::class, BarTrait::class);
  • 只生成输出而不更改文件
use Traitor\Handlers\AbstractTreeHandler;

$handler = new AbstractTreeHandler(file($originalFilePath), FooTrait::class, BarClass::class);

$newContent = $handler->handle()->toString();

注意,AbstractTreeHandler 接受输入文件为行数组,例如通过 file() 调用生成的。

行为

添加新的特质使用声明不会以任何方式改变文件格式(至少不应该)。

如果特质不在命名空间声明下方的 use 部分,它也将被添加在那里,在任何现有导入之后。

如果它不在类体中的 use 部分,它将被添加在那里,在第一个现有的使用声明上方,单独一行。

use Bar\PreviouslyExistingTrait;
use Baz\NewlyAddedTrait; // Here

class Foo
{
    use NewlyAddedTrait; // And here
    use PreviouslyExistingTrait;
}