多手 / 过载
一个简化基于参数数量创建特性方法过载过程的工匠命令。
dev-master
2022-06-23 13:03 UTC
Requires
- php: >=7.2.0
- touhidurabir/laravel-stub-generator: 1.0
This package is auto-updated.
Last update: 2024-09-25 18:51:40 UTC
README
一个简化基于参数数量创建特性方法过载过程的工匠命令。
该包允许您快速为特性创建模板,基于这些模板可以实施通过参数数量过载方法的机制。
overload:create 命令接受两个参数: method(创建特性中使用的函数名)和 namespace(特性的命名空间,其中最后一段是特性的名称。所有特性都创建在 app 目录中,默认在 Traits\Overloads 子目录中,但是您可以通过在 .env 中设置 TRAITS_DIRECTORY 变量来设置自己的子目录。
所有新创建的特性生成的命名空间已包含 App\TRAITS_DIRECTORY 段落,因此在生成时无需指定这些参数。
对于每个命名空间,创建一个单独的特性,后缀为 Main。它连接相同命名空间的所有其他特性。生成每个新特性时,此文件将自动更新。
示例
php artisan overload:create test_func Test\TestOverload
获取生成的文件 TestOverload
<?php
namespace App\Traits\Overloads\Test;
trait TestOverload
{
function test_func(...$args)
{
switch(func_num_args())
{
/** Example
case 0:
echo 'no arguments';
break;
case 1:
echo $args[0];
break;
case 2:
[0 => $param1, 1 => $param2] = $args;
echo "$param1, $param2";
break;
*/
}
}
}
和 TestMain.php
<?php
namespace App\Traits\Overloads\Test;
trait TestMain
{
use TestOverload;
}
通过删除 test_func 方法中的注释,我们可以在任何项目模型中使用它,我们只需要使用单个特性 TestMain 来连接特性。
use App\Traits\Overloads\Test\TestMain;