所以我試圖解決爲什麼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
呃...似乎沒有做任何事情: - \ –