我为"name:kernel.event_listener,event:kernel.request"定义了2个事件监听器,但是我可以做我想做的事情,我无法改变调用这个监听器的顺序.我尝试使用"优先"号码,但没有任何帮助.
这个事件总是在调用@first:
MyBundle.Foo.Listener.RequestListener:
class: %MyBundle.Foo.Listener.request.class%
arguments: [ @session, @liip_theme.active_theme, @Need.some.infos.service ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onRequest, priority: 100 }
Run Code Online (Sandbox Code Playgroud)
并且此事件永远不会调用,因为第一个事件使用的服务依赖于此事件的信息,因此在触发此事件之前它会崩溃:
MyBundle.Bar.Listener.RequestListener:
class: %MyBundle.Bar.Listener.request.class%
arguments: [ @session ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onRequest, priority: 200 }
Run Code Online (Sandbox Code Playgroud)
我也改变了"优先级",但没有改变:(
也许有人给我一个提示,我可以确保听众"MyBundle.Bar.Listener.RequestListener"会在另一个事件之前调用吗?
我想在SF2项目中使用"Monolog - > GelfHandler".所以我已经将以下内容添加到我的composer.json中:
"graylog2/gelf-php": "dev-master"
Run Code Online (Sandbox Code Playgroud)
我的SF2 config.yml:
monolog:
handlers:
main:
type: gelf
publisher:
hostname: %Graylog2.Host%
port: %Graylog2.Port%
level: info
formatter: monolog.formatter.session_request
Run Code Online (Sandbox Code Playgroud)
但是现在,如果我想记录某些内容,我在GelfHandler :: write()中收到错误
Gelf\Publisher::publish() must be an instance of Gelf\MessageInterface, string given
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
如何使用PHP在Windows服务器上获取服务器时区?
对于linux:
$systemTimeZone = system('date +%Z');
Run Code Online (Sandbox Code Playgroud)
*nix系统:
$systemTimeZone = popen("date +%Z");
Run Code Online (Sandbox Code Playgroud)
视窗:
$systemTimeZone = ???
Run Code Online (Sandbox Code Playgroud)
greez&thx,sky ...
编辑:我知道的PHP功能如下:
date_default_timezone_get()
date('T')
\DateTime::timezone
Run Code Online (Sandbox Code Playgroud)
但PHP的所有这些内置函数都参考了php.ini中的设置.我想知道操作系统中真正使用的时区.
我试图使用Windows命令行工具
systeminfo
Run Code Online (Sandbox Code Playgroud)
但这对于调用和解析来说是缓慢的.我有testet的另一个命令行工具是:
tzutil /g
Run Code Online (Sandbox Code Playgroud)
这不是我想要的时区格式,在我的情况下,我得到这个:
$:> tzutil /g
W. Europe Standard Time
Run Code Online (Sandbox Code Playgroud)
还有其他任何想法吗?