문제

내가 사용하려고 SimpleTest 으로 동작 코드를 사용하여 공급여 maroonbytes.내가 사용하여 램프와 NetBeans6.9.

이 test.php 페이지중에 브라우저입니다.나는 스텁 테스트 장소에 보여줍에서 드롭다운 항목을 선택합니다.을 실행하려고 할 때,그것을 얻 2PHP 오류가 있습니다:

메시지:include_once(/var/www/sparts3/main/tests/basic_test_v.php):을 열지 못했 스트림:그런 파일이나 디렉토리

메시지:include_once():개 '/var/www/sparts3/main/tests/basic_test_v.php' 포함 (include_path='.:/usr/share/php:/usr/share/배')

경로는 잘못된-- basic_test_v.php 하위 /검/보기.

디버거 점에서 이 test.php:

function add_test($file, &$test)

어떤 이유로 NetBeans 노출되지 않 달러 가치의 파일 이 시점에서.이 뜻은 그것은 빈?

나는 이미 jimmied 코드의 라인을 얻을 수 있기 때문에 저는 과거에는 코드는 404 페이지를 찾을 수 없습니다.그것은 듯 디버거를 얻었는 원인 검증을 실패합니다.그래서 나는 추가 조건에서 내 무식한 방법(저는지 확인해야 처리된 예외 또는 뭔가):

if ($this->uri->uri_string == '' || $this->uri->uri_string == 'XDEBUG_SESSION_START')
    {   ...  }

어떻게 해결할 수 있는 이?BTW,이를 해결하려고 시도했 나의 다른 글, 나는 것입 업데이트;보였고 이 불연속 질문입니다.


UPDATE1: 나는 사용하는 웹 개발자는 추가서(Firefox)과 실험 포스트 항목이 있습니다.내가 믿고 이들은 잘못 처리되는 코드입니다.그것은 여전히 나타나 NetBeans 방해하고 있에서 보여주는 어떤 문자열 변수를 디버깅하는 동안;이것은 실망이다.

UPDATE2: 그것은 나에게 보인다는 유효한 코드 처리를 중지에서 동일한 지점 NetBeans 정지 표시하는 변수입니다.나를 단계별로 실행 test.php.나는 도중에을 통해 기능, add_test($file,&$테스트).이 기능으로 열리는 경우 statement;을 완료하고,내가 볼 수 있는 변수입니다.새로운 if:

if (file_exists($implementation))
{
    require_once ($implementation); ...

한 빨리 나에는 라인,2 일:

  1. 변수가 전시에서 공 NetBeans 를 제외한 자동 전역
  2. 코드로 동작하는 경우 $구현 빈 변수

추가 문을 위한 이러한 라인:

$implementation = 'http://var/www/sparts3/main/tests/views/basic_test_view.php';

이것은 변화하지 않는다.브라우저에 출력하는지 여부에 관계없이 동일합니다 난 사용하여 NetBeans/Xdebug 나지 않습니다.

그래서 그처럼 보이기 시작 PHP 처리한다.그 존재하는가?내가 하려고 할 수 있습 업로드하고 호스트에서 서비스를 위한 진단 단서만,그리고 cheerlessly 기 때문에 CI 하는 기능이 없다면 디버그의 관심이 없다.


UPDATE3: 나는 모든 노력을 밖에서는 고객님이 PC.동일한 브라우저 결과(플러스 일부는"사용"오류가 뭔가를 PHP4 대5).나를 디버깅할 수 있에는 PC(는 경우 Xdebug 작동),그러나 있는 것 같은 지점입니다.

도움이 되었습니까?

해결책

당신은 이름이 바뀐 basic_test_v.php 하기 basic_test_view.php?코드 기대하고 파일명을하고 마우스 오른쪽 버튼으로 저장됩.

UPDATE1 (yes im bored)

나는 이미 jimmied 코드의 라인 기 때문에 그것을 얻게 과거 Code404 페이지를 찾을 수 없습니다.그것은 듯 디버거 을 얻으로 검증하여 실패합니다.그래서 나는 추가 조건에서 내 무지 방법(저는지 확인해야 처리 예외가 발생하거나 뭔가):

if ($this->uri->uri_string == '' || $this->uri->uri_string == 'XDEBUG_SESSION_START') {   ...  }

어떻게 해결할 수 있는 이?BTW,이를 해결하려고 시도했 나 다른 게시는 것입 업데이트;보였고 이는 이산 질문입니다.

"오른쪽"이 문제를 솔루션입니다:설정 $config['uri_protocol'] = "AUTO"; 하기 $config['uri_protocol'] = "PATH_INFO";$config['enable_query_strings'] = FALSE; 하기 $config['enable_query_strings'] = TRUE; 에 config.php (댓글을 읽은 위의 설정,그들은 아주 도움이)

후 깊이 살펴보 test.php 나는 당신을 말할 수 있는 테스트 파일을 지정해야 다음과 같다:

%name%_%type%_test.php 는(%유형%은 단수)

을 더 분명히 여기 예를 들어:

했을 환영합 컨트롤러 위치에서 파일 welcome.php 테스트를 위한 이 컨트롤러 라는 이름 welcome_controller_test.php 저장 아래에서 테스트/컨트롤러/

이 test.php 스크립트를 로드하려고 하는 테스트 파일 테스트 파일이 자동으로 합니다.그러나 제 생각에 그것을 수정해야합니다.

나는 변경 기능 get_loader_id 및 add_test 같은 다음과 같이

function get_loader_id($file, $type) {
   $loader_id = str_replace("_{$type}_test.php", "", basename($file));
   return $loader_id;
}
function add_test($file, &$test) {
   $implementation = '';
   if (preg_match('/_controller/', $file)) {
      $controller = get_loader_id($file, 'controller');
      $implementation = APPLICATION . 'controllers/' . $controller . '.php';
   } elseif (preg_match('/_model/', $file)) {
      $model = get_loader_id($file, 'model');
      $implementation = APPLICATION . 'models/' . $model . '_model.php';
   } elseif (preg_match('/_view/', $file)) {
      $view = get_loader_id($file, 'view');
      $implementation = APPLICATION . 'views/' . $view . '.php';
   } elseif (preg_match('/_helper/', $file)) {
      $helper = get_loader_id($file, 'helper');
      $implementation = APPLICATION . 'helpers/' . $helper . '.php';
   } elseif (preg_match('/_library/', $file)) {
      $library = get_loader_id($file, 'library');
      $implementation = APPLICATION . 'libraries/' . $library . '.php';
   }
   if (file_exists($implementation)) {
      require_once ($implementation);
   }
   $test->addFile($file);
}

는 경우 다음과 같은 이름 규칙을 모두해 잘 실행 (나는 그것을 테스트에는 맥북 젠드 서버 ce,xdebug,simpletest 및 netbeans6.9)

다른 팁

만약 당신이 무엇을 로드하는 볼,당신은 시도를 사용하여 $this->load->view('basic_test_view'); ?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top