【问题标题】:Static function not calling in PHP 5.3 Yii FrameworkPHP 5.3 Yii 框架中未调用静态函数
【发布时间】:2014-01-10 07:45:33
【问题描述】:

我在我的 Yii 应用程序中创建了一个控制器 CommonController(不是由 gii 生成的)。它包含很多静态方法。

例如

class CommonController extends Controller{

public static getDate(){
   ...
   ...
}

public static getInfo(){
   ...
   ...
}

etc...

}

在本地主机上,我使用 PHP 5.4 并从另一个控制器/模型/视图调用静态方法: 例如。

CommonController::getDate()

它的工作正常。

现在我已将应用程序移至具有 PHP 5.3 版本的服务器上。我调试了很多,发现CommonController::getDate()这个类没有被调用,它破坏了我的应用程序。

我到处都用过这个东西,我该如何解决这个问题。

需要帮助。

谢谢。

【问题讨论】:

  • 向我们展示您的错误日志

标签: php class yii static php-5.3


【解决方案1】:

您应该在使用之前尝试导入该类:

Yii::import('application.controllers.CommonController');

http://www.yiiframework.com/doc/api/1.1/YiiBase#import-detail

【讨论】:

  • 是php版本的问题还是yii::import的问题?
【解决方案2】:

Yii 不将其自动加载器用于控制器。这就是为什么你应该在使用其他类之前导入它们。

无论如何,不​​应该使用控制器来共享项目中其他类的功能。您可以创建辅助类(在protected/helpers 下)并将它们添加到自动加载器(将'application.helpers.*' 添加到配置文件的import 数组中)。

【讨论】:

    【解决方案3】:

    我已经尝试了以上所有方法,但它对我不起作用。所以最后我将我的 PHP 版本 5.3 更改为 5.4.10(这是最稳定的最旧版本),它对我有用。

    感谢您的帮助和支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多