将类方法作为Silex中的回调传递

时间:2014-08-10 18:39:42

标签: php callback silex

是否可以在Silex中将类/对象方法作为回调传递?例如,我有这段代码:

class Implementation {
 public function test() {
   return "Hello World!";
 }
}

$code = new Implementation();
$app->get('/', function() use ($code) {
 return $code->test();
});

因为我不希望匿名回调中的代码我把它移到了一个类中。这是有效的,但我想知道是否有更简单的方法来写这个,如:

$app->get('/', $code->test);

到目前为止,我还没有发现任何事情,如果你们中有人有任何想法,我们真的很感激:)

1 个答案:

答案 0 :(得分:2)

您正在寻找Controllers in Classes

$app->get('/', 'Acme\\Foo::bar');

use Silex\Application;
use Symfony\Component\HttpFoundation\Request;

namespace Acme
{
  class Foo
  {
    public function bar(Request $request, Application $app)
    {
        // ...
    }
  }
}