PHP 可捕获的致命错误 - 在服务器上
PHP Catchable Fatal Error - on server
当前面临新的 Silex (Symfony) PHP 应用程序的问题。如果我像 php -S localhost:8080
一样在本地启动它,一切都会立即正常运行。上传到服务器后直接500 Internal Server Error 输出如下日志:
[Tue Jan 19 16:15:24 2016] [error] [client 62.99.210.9] PHP Catchable fatal error:
Argument 2 passed to Symfony\Component\HttpKernel\Event\FilterControllerEvent::
__construct() must be an instance of Symfony\Component\HttpKernel\Event\callable,
instance of Closure given, called in /appl/www/htdocs/XXX/static/dashboard/php/
vendor/symfony/http-kernel/HttpKernel.php on line 131 and defined in /appl/www/htdocs/XXX/static/dashboard/php/
vendor/symfony/http-kernel/Event/FilterControllerEvent.php on line 35
composer.json:
{
"require": {
"silex/silex": "~1.2",
"twig/twig" : "1.*",
"symfony/twig-bridge": "2.1.*"
},
"minimum-stability": "dev",
"config": {
"vendor-dir": "php/vendor"
}
}
对于导致此类错误的任何想法表示赞赏。
PHP 版本:PHP 5.3.3 (cli)(内置:2014 年 10 月 23 日 06:58:46)
可调用类型提示自 PHP 5.4
起可用
Callbacks can be denoted by callable type hint as of PHP 5.4. This
documentation used callback type information for the same purpose.
http://php.net/manual/en/language.types.callable.php
这里发生的事情是 PHP 尝试将类型提示 "callable" 解析为 class 名称,并且由于没有命名空间,它会查找 class "Symfony\Component\HttpKernel\Event\callable" 显然不存在。
我用的是php 5.3.9,我遇到了同样的问题
Silex 在 1.3.3+ 版本中安装 HttpKernel 什么使用 PHP 5.4+ 功能。
我的解决方案是使用 Silex 1.3.2。所有依赖项都使用 PHP 5.3.x
我不使用 require PHP 5.3 因为作曲家需要 5.4 才能工作。
最简单的方法是更新 php 版本,但我无法更新服务器。你懂的
当前面临新的 Silex (Symfony) PHP 应用程序的问题。如果我像 php -S localhost:8080
一样在本地启动它,一切都会立即正常运行。上传到服务器后直接500 Internal Server Error 输出如下日志:
[Tue Jan 19 16:15:24 2016] [error] [client 62.99.210.9] PHP Catchable fatal error:
Argument 2 passed to Symfony\Component\HttpKernel\Event\FilterControllerEvent::
__construct() must be an instance of Symfony\Component\HttpKernel\Event\callable,
instance of Closure given, called in /appl/www/htdocs/XXX/static/dashboard/php/
vendor/symfony/http-kernel/HttpKernel.php on line 131 and defined in /appl/www/htdocs/XXX/static/dashboard/php/
vendor/symfony/http-kernel/Event/FilterControllerEvent.php on line 35
composer.json:
{
"require": {
"silex/silex": "~1.2",
"twig/twig" : "1.*",
"symfony/twig-bridge": "2.1.*"
},
"minimum-stability": "dev",
"config": {
"vendor-dir": "php/vendor"
}
}
对于导致此类错误的任何想法表示赞赏。
PHP 版本:PHP 5.3.3 (cli)(内置:2014 年 10 月 23 日 06:58:46)
可调用类型提示自 PHP 5.4
起可用Callbacks can be denoted by callable type hint as of PHP 5.4. This documentation used callback type information for the same purpose.
http://php.net/manual/en/language.types.callable.php
这里发生的事情是 PHP 尝试将类型提示 "callable" 解析为 class 名称,并且由于没有命名空间,它会查找 class "Symfony\Component\HttpKernel\Event\callable" 显然不存在。
我用的是php 5.3.9,我遇到了同样的问题 Silex 在 1.3.3+ 版本中安装 HttpKernel 什么使用 PHP 5.4+ 功能。
我的解决方案是使用 Silex 1.3.2。所有依赖项都使用 PHP 5.3.x 我不使用 require PHP 5.3 因为作曲家需要 5.4 才能工作。
最简单的方法是更新 php 版本,但我无法更新服务器。你懂的