【问题标题】:Cannot redeclare config() error in cakePHP无法在 cakePHP 中重新声明 config() 错误
【发布时间】:2011-06-08 09:33:04
【问题描述】:

我收到错误 Fatal error: Cannot redeclare config() (previously declared in.../basics.php:58, 在实时服务器中。它在我的本地服务器上工作正常但是当我将站点上传到实时服务器时,我得到了致命错误。 我检查了 config() 是否被多次声明,但它只在 basics.php 文件中声明过一次。 也遵循命名约定,因为它在本地服务器中工作正常。它仅在实时站点中显示此类错误。 请为此提出解决方案。

我们将不胜感激。

【问题讨论】:

  • 您能否发布完整的错误文本以及文件/行号?

标签: cakephp config php redeclare


【解决方案1】:

如果多次包含“basics.php”,就会发生这种情况。您可以通过使用include_once/require_once 而不是include/require 来防止它。

但这并不能解释为什么它可以在您的本地网络服务器上运行。

【讨论】:

  • 是的,它在本地和现场的代码相同,但在本地工作正常但在现场显示错误,我检查了 config() 和 basics.php 的多次重新声明,但它只是声明一次并包含一次,但我仍然面临这个问题
  • 对我来说,就是这样。就像一个额外的要求一样简单,而不是我的 ROOT/index.php 中的 require_once: require CORE_PATH 。 '蛋糕' 。 DS 。 'basics.php';
【解决方案2】:

以防有人碰巧搜索这个。

我在安装有 cakephp 1.3.11 的 Windows 2003 服务器上遇到了同样的错误。就我而言,这是因为我在一个类关联声明中出现了拼写错误。

我已经定义了一个 Client 类,它具有与 Account 类的 hasOne 关联。我在 Client 中错误地键入了 className 属性,这创建了一个循环并导致 Cannot redeclare config() 在 cakePHP 中出现错误

【讨论】:

    【解决方案3】:

    将 $uses 设置为 array() 并将 $autoRender 设置为 false 如下将解决此问题

       class IndexController extends AppController
        {
    
            public $uses = array();
            public $autoRender = false;
    
            public function index()
            {
                echo 'test';
            }
    
        }
    

    【讨论】:

      【解决方案4】:

      我在运行 Apache 时遇到了这个错误,它最终与我的 .htaccess 文件被忽略有关 - 我一直在重新配置 Apache,并且在我的配置文件中不小心将 AllowOverride 设置为 None,不知何故导致此错误。

      因此,简而言之,在您的 http.conf 或您的站点配置之一中,确保相关目录部分中的 AllowOverride 设置为 All(或 None 以外的其他内容),这是我的:

      <Directory /var/www>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All 
          Order allow,deny
          allow from all
      </Directory>
      

      【讨论】:

      • 是的,这是真的。在你必须启用 mod_rewrite 之前,例如在 Ubuntu sudo a2enmod rewrite; sudo service apache2 restart 谢谢
      【解决方案5】:

      检查您的 PHP 版本。当您使用比 5.3 更严格的 PHP 5.4 版时会发生错误

      打开你的 cake/bootstrap.php 并进行更改以确保每个文件都使用函数“require_once”加载一次。代码将是这样的:

      require_once CORE_PATH . 'cake' . DS . 'basics.php';
      require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php';
      require_once LIBS . 'object.php';
      require_once LIBS . 'inflector.php';
      require_once LIBS . 'configure.php';
      require_once LIBS . 'set.php';
      require_once LIBS . 'cache.php';
      Configure::getInstance();
      require_once CAKE . 'dispatcher.php';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        相关资源
        最近更新 更多