好的,我确定这是一个很好的方法。但是我被卡住了。
基本上,我有一个自定义处理程序文件夹,可以在多组产品上运行功能。文件夹(和命名空间)结构看起来像这样
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();
有一种简单的方法吗?
干杯!
答案 0 :(得分:4)
您可以使用call_user_func
在动态类名称上调用方法,例如:
<?php
namespace MyPackage;
class Foo
{
public static function bar()
{
echo 'Hello';
}
}
$className = "\\MyPackage\\Foo";
call_user_func([$className, 'bar']);