2016-05-16 3 views
0

これを行うには良い方法があります。しかし、私は立ち往生しています。Laravelは静的関数をvarに基づいて呼び出します。

基本的には、製品のセットに機能を実行するカスタムハンドラのフォルダがあります。フォルダ(および名前空間)の構造は、「generate.php」と「list.php」インサイドこの

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

のように見え、それらすべての共有の静的関数です。私のコントローラでは、モデルの属性に基づいてこれらのハンドラの1つを呼び出す必要があります。ような何か:

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

それは

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

を呼ぶような「スレッド」を使用した製品は、これを行う簡単な方法はありますか?

乾杯!

答えて

4

あなたは例えば、動的なクラス名でメソッドを呼び出すためにcall_user_funcを使用することができます。:

<?php 
namespace MyPackage; 

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

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

ああ、この1を推測したかもしれません!私はちょうどこれを処理するいくつかのユニークな方法を考えようと試みるのではなく、それを試していたはずです。 5分で受け入れます:) –

関連する問題