kkszymanowski / traitor
将特质使用声明添加到现有的PHP类中
1.1.0
2024-01-29 09:23 UTC
Requires
- php: >=5.4
- nikic/php-parser: ^1.0|^2.0|^3.0|^4.0|^5.0
Requires (Dev)
- phpunit/phpunit: 8.*
README
一个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;
}