带有Symfony框架的PHP 5.4中的ClassName :: CLASS

时间:2015-11-02 14:49:29

标签: php symfony

我刚刚将一个有效的symfony安装从一个文件夹移动到另一个文件夹。现在我收到了错误

FatalErrorException: Parse Error: syntax error, unexpected 'CLASS' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in ...

我知道Classname :: CLASS方法是在PHP 5.5中实现的。但我使用PHP 5.4,直到今天一切正常。 CLASS方法用于供应商目录中的几个类,例如需要的Gos \ Bundle \ WebSocketBundle。我不知道我通过将它移动到另一个目录来使这个正在运行的系统崩溃。

1 个答案:

答案 0 :(得分:0)

只要您遇到PHP 5.4,这可能会有所帮助。 但请注意,对PHP 5.4的支持已经结束 - 所以你不应再依赖它了!

在我们升级到PHP 5.5之前,我们使用特征作为临时解决方案进行了以下操作:

/**
 * Trait to supplement the PHP 5.5 function ::class
 *
 */
trait ClassName
{
 /**
 * Returns the Full name of a class (equivalent of ::class which can be used starting from php 5.5)
 *
 * @return string the class name including namespace
 */
static public function CLASSNAME()
{
    return get_called_class();
}
} 

并在某个基类中使用它:

use ClassName;

class MyClass {
 use ClassName;

....
 }