Laravel基于var调用静态函数

时间:2016-05-16 12:28:58

标签: php laravel namespaces

好的,我确定这是一个很好的方法。但是我被卡住了。

基本上,我有一个自定义处理程序文件夹,可以在多组产品上运行功能。文件夹(和命名空间)结构看起来像这样

HANDLERS
-MAIN
--Generate.php
--List.php
-THREAD
--Generate.php
--List.php
-TEST
--Generate.php
--List.php

在' generate.php'内和' list.php'是静态函数,它们都共享。在我的控制器中,我想根据模型的属性调用其中一个处理程序。类似的东西:

\Handlers\$product->handler\Generate::go();

如果使用的产品'线程'它会调用

\Handlers\Thread\Generate::go();

有一种简单的方法吗?

干杯!

1 个答案:

答案 0 :(得分:4)

您可以使用call_user_func在动态类名称上调用方法,例如:

<?php
namespace MyPackage;

class Foo
{
    public static function bar()
    {
        echo 'Hello';
    }
}

$className = "\\MyPackage\\Foo";
call_user_func([$className, 'bar']);