所以我试图解决为什么CodeIgniter不会显示任何输出(除了404的等)。我已经检查了从php和apache以及codeigniter的错误日志记录到模块重写的所有内容。一切似乎都配置得很好。CodeIgniter无法实例化控制器类
我开始潜入笨的核心文件,并注意到这是上线崩溃低于试图实例所请求的控制器类:
$class = $RTR->fetch_class();
$method = $RTR->fetch_method();
echo 'looking for class: ' . $class . '<br/>';
if(class_exists($class) == false) {
)
{
echo 'class does not exist: ' . $class;
show_404("{$class}/{$method}");
}
}
/*
* ------------------------------------------------------
* Is there a "pre_controller" hook?
* ------------------------------------------------------
*/
$EXT->_call_hook('pre_controller');
echo '<br/>after precontroller';
/*
* ------------------------------------------------------
* Instantiate the requested controller
* ------------------------------------------------------
*/
// Mark a start point so we can benchmark the controller
$BM->mark('controller_execution_time_('.$class.'/'.$method.')_start');
echo '<br/>before class init: ' . $class;
$CI = new $class();
echo '<br/>after class init';
这是/core/CodeIgniter.php文件中。下面是输出:
CodeIgniter.php
looking for class: servicecontroller
after precontroller
before class init: servicecontroller
基本上它告诉我,它可以找到的ServiceController类,但是当它试图实例化它,它崩溃。 php错误日志已启用,并且display_errors已打开。如果我在这里附近的任何地方强制执行php错误,我会在页面上看到它,但不是这个。有没有人知道为什么它不能通过这条线?
servicecontroller.php安排是这样的:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class servicecontroller extends CI_Controller {
}
尝试将您的类更改为'class Servicecontroller extends CI_Controller' ...它在文档中明确提到类名必须以大写字母开头,小写字母无效。 – keithhatfield
呃...似乎没有做任何事情: - \ –