仅在匹配的IP上启动Web Profiler

时间:2014-01-14 22:13:43

标签: php silex

使用Silex,如何将网络分析器限制为仅启动/显示匹配的IP?

2 个答案:

答案 0 :(得分:1)

我猜你可以这样做:

...
$request = Request::createFromGlobals();
$ips = array('IP1', 'IP2', 'IP3');  //IP's for which to enable web profiler
if (in_array($request->getClientIp(), $ips)) {
    $app->register(new Provider\WebProfilerServiceProvider(), array(
        'profiler.cache_dir' => __DIR__.'/../cache/profiler/',
        'profiler.mount_prefix' => '/_profiler', // this is the default
    ));
}
...
$app->run($request);

答案 1 :(得分:0)

你不能使用

$request->getClientIp()  

因为$ app当时没有真正初始化

相反,使用before handler:

$app->before(function (Request $request) use ($app) {
  $ips = array('IP1', 'IP2', 'IP3');  //IP's for which to enable web profiler
  if (in_array($request->getClientIp(), $ips)) {
     //register blah 
  }
});

$app->run();

它将在->run()中调用,其中上下文全部设置,一切都应该没问题。