Silex:将变量传递给控制器 class
Silex: Pass a variable to a controller class
我已经设法将路由参数传递给 class,使用这个:
$app-get('/{$id}', 'OwnClass\Bazinga::lizard');
class Bazinga {
public function lizard($id, Application $app, Request $request) {
return "Scissors cuts paper, paper covers rock, rock crushes lizard..."; }
但是如何将全局变量传递给控制器调用的 class?
在正常的关闭中,我会使用这个...
$app->get('/', function () use ($globalvariable) { return "meep meep"; } );
我已经设法通过 class 中的静态变量找到解决方法,但必须有更好的方法。
我会使用 $app
容器通过控制器(和其他地方)共享全局变量:
$app->get('/{$id}', 'OwnClass\Bazinga::lizard');
$app['a.unique.identifier'] = $globalvariable;
class Bazinga {
public function lizard($id, Application $app, Request $request) {
$globalvariable = $app['a.unique.identifier'];
return "Scissors cuts paper, paper covers rock, rock crushes lizard...";
}
}
我已经设法将路由参数传递给 class,使用这个:
$app-get('/{$id}', 'OwnClass\Bazinga::lizard');
class Bazinga {
public function lizard($id, Application $app, Request $request) {
return "Scissors cuts paper, paper covers rock, rock crushes lizard..."; }
但是如何将全局变量传递给控制器调用的 class? 在正常的关闭中,我会使用这个...
$app->get('/', function () use ($globalvariable) { return "meep meep"; } );
我已经设法通过 class 中的静态变量找到解决方法,但必须有更好的方法。
我会使用 $app
容器通过控制器(和其他地方)共享全局变量:
$app->get('/{$id}', 'OwnClass\Bazinga::lizard');
$app['a.unique.identifier'] = $globalvariable;
class Bazinga {
public function lizard($id, Application $app, Request $request) {
$globalvariable = $app['a.unique.identifier'];
return "Scissors cuts paper, paper covers rock, rock crushes lizard...";
}
}