그래서 CodeIgniter가 404를 제외하고 출력을 표시하지 않는 이유를 해결하려고합니다. 나는 모듈 재 작성에 PHP와 아파치와 codeigniter에서 로깅하는 오류로부터 모든 것을 검사했다. 모든 것이 잘 구성된 것 같습니다. 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 {
}
클래스를 '클래스 Servicecontroller extends CI_Controller'로 변경해보십시오. 문서에서 명시 적으로 클래스 이름은 대문자로 시작해야하며 소문자는 유효하지 않습니다. – keithhatfield
음 ... 아무것도하지 않는 것 같았다 : - \ –