【问题标题】:index.php in CakePHP i dont get it [closed]CakePHP中的index.php我不明白[关闭]
【发布时间】:2012-01-14 09:03:00
【问题描述】:

我不知道哪里出了问题,ZIP文件刚刚给我,一组程序员“做了”“一半”的工作,现在我应该做,问题是,我不知道错误在哪里,当我去 localhost/wookay/ 时没有任何显示

代码如下:

<?php

if (!defined('DS')) {
    define('DS', DIRECTORY_SEPARATOR);
}



if (!defined('ROOT')) {
    define('ROOT', dirname(dirname(dirname(__FILE__))));
}


if (!defined('APP_DIR')) {
    define('APP_DIR', basename(dirname(dirname(__FILE__))));
}

if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', ROOT);
}




if (!defined('WEBROOT_DIR')) {
    define('WEBROOT_DIR', basename(dirname(__FILE__)));
}

if (!defined('WWW_ROOT')) {
    define('WWW_ROOT', dirname(__FILE__) . DS);
}

if (!defined('CORE_PATH')) {
    if (function_exists('ini_set') && ini_set('include_path', CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS . PATH_SEPARATOR . ini_get('include_path'))) {
        define('APP_PATH', null);
        define('CORE_PATH', null);
    } else {
        define('APP_PATH', ROOT . DS . APP_DIR . DS);
        define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
    }
}

if (!include(CORE_PATH . 'cake' . DS . 'bootstrap.php')) {
    trigger_error("CakePHP core could not be found.  Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php.  It should point to the directory containing your " . DS . "cake core directory and your " . DS . "vendors root directory.", E_USER_ERROR);
}



if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') {

    return;
} else {

    $Dispatcher = new Dispatcher();

            $Dispatcher->dispatch($url);
    }

if (Configure::read() > 0) {
    echo "<!-- " . round(getMicrotime() - $TIME_START, 4) . "s -->";
}

?>

我忘了告诉你,我对CakePHP有点菜鸟,我通常使用smarty模板并在此过程中创建自己的框架,我确定问题出在我之前回应的$Dispatcher = new Dispatcher();中的某个地方之后,它没有显示之后的内容......

我更改了 config/core.php Configure::('debug',0); to Cinfigure::('debug',1);

当它是“0”时什么都没有显示,现在,当我将它更改为“1”时,一切都显示了,但是 0 应该是生产模式吗?

【问题讨论】:

  • 检查您的网络服务器的日志。错误可能存在。
  • 反引号用于inline code only。对于代码块,每行缩进 4 个空格或选择代码块并按{} 按钮。
  • 遗憾的是它没有错误日志... :(
  • @GianCresciniSantillan 在config.php中开启错误报告和CakePHP的调试(设置为2
  • @MarcB 为什么不呢? ROOT_PATH . DS . 'localhost' . DS . 'app' . DS . 'www' . DS 似乎比 ROOT_PATH . DIRECTORY_SEPERATOR . 'localhost' . DIRECTORY_SEPERATOR . 'app' . DIRECTORY_SEPERATOR . 'www' . DIRECTORY_SEPERATOR 更干净

标签: php cakephp frameworks


【解决方案1】:

开启报错,在开头&lt;?php后面加上这一行

error_reporting(E_ALL);

或通过将 CakePHP 的值设置为 2 来启用 CakePHP 的调试设置,您将在

config/core.php

然后将这一行改为

Configure::write('debug', 2);

【讨论】:

  • 谢谢,我真的是个菜鸟谢谢,但我还是有一个问题,在我这样做之前,Conigure::write('debug',2);它是 0,什么都没有显示,现在我把它改成 2 一切都显示了 :(
  • @GianCresciniSantillan 强烈建议您在网站上工作时离开2,但在投入生产时将其更改为0
【解决方案2】:

CakePHP 设置it own error handler 阻止将日志保存在 php 通常会做的地方。

我建议您转到app/config/core.php 并检查选项debug 检查this 以查看问题所在。

cakephp 的主要问题是您通常从盲点开始。

【讨论】:

    【解决方案3】:

    在文件顶部添加这一行

    echo "test"; 
    

    注释掉该文件的测试,然后重新加载它。您应该在浏览器中看到单词 test。现在,系统地将一小段代码添加回文件中。意思是将顶部的评论锚移到

    下方
    if (!defined('DS')) {
        define('DS', DIRECTORY_SEPARATOR);
    }
    

    编码,保存并刷新页面 - 重复此过程直到页面失败,然后您就知道代码中的问题所在。

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2020-10-23
      相关资源
      最近更新 更多