小编Sky*_*blo的帖子

如何在Symfony 2中更改事件处理程序优先级

我为"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"会在另一个事件之前调用吗?

event-handling symfony

9
推荐指数
1
解决办法
9117
查看次数

Graylog2与Symfony 2(Monolog)

我想在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 symfony monolog graylog2

8
推荐指数
1
解决办法
3905
查看次数

php - 如何获取Windows的服务器时区?

如何使用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)

还有其他任何想法吗?

php windows timezone

-2
推荐指数
1
解决办法
2751
查看次数

标签 统计

php ×2

symfony ×2

event-handling ×1

graylog2 ×1

monolog ×1

timezone ×1

windows ×1