2014-01-13 2 views
0

이것이 CodeIgniter의 오랜 사용자이지만 FuelPHP를 처음 배포 한 것입니다.FuelPHP 간단한 클래스를 찾을 수 없음 오류

ErrorException [ Fatal Error ]: 
Class 'Model\Model_UPS' not found 

/classes/controller/ups.php

<?php 
use \Model\Model_UPS; 
class Controller_UPS extends Controller { 
    public function action_index() { 
     $view = View::forge('json'); 
     $view->title = Model_UPS::get_load(); 
     return $view; 
    } 
} 
?> 

/classes/model/model_ups.php 또는 ups.php : 나는 페이지를로드 할 때

나는 다음과 같은 오류를 얻고있다

<?php 
namespace Model; 
class Model_UPS extends \Model { 
    public static function get_load() { 
     return "This is the load!"; 
    } 
} 
?> 

/views/json.php

,
<?=$title;?> 

오류 페이지는 $view->title = Model_UPS::get_load(); 행의 ups.php를 강조 표시합니다. 내가 생각할 수있는 사용, 네임 스페이스, 모델 파일명 및 모델 클래스 이름에 대한 모든 구성을 시도했습니다. 가이드로 사용할 수있는 간단한 간단한 MVC 예제를 찾을 수 없습니다. 가능한 한 최선을 다해 FuelPHP 문서를 복제하려고했지만 실패했습니다. 아무도 이것으로 잘못된 것을 찾을 수 있습니까?

+0

나는 codeigniter에 대해 모른다. 그러나 네임 스페이스와 pseudo-underscore-namespaced-class-names를 사용하는 것은 나에게 이상한 것 같다 :'\ Model \ Model_UPS'; 읽어야 할 수도 있습니다 :'\ Model \ UPS' ... – feeela

+0

CodeIgniter는 네임 스페이스가 없기 때문에 이러한 접두사를 필요로하며 폴더 케스케이드 (모든 클래스는 같은 폴더에 있음)를 지원하지 않으므로 접두어가 길고 밑줄을 긋는 또 다른 이유입니다 클래스 이름. 이것은 FuelPHP에서 필요하지 않습니다. – WanWizard

답변

4
  • 이름 바꾸기 파일 : 모델/model_ups.php모델/ups.php
  • 이름 바꾸기 클래스 : Model_UPS UPS
  • 변경 : 사용 \ 모델 \의 Model_UPS; ~ \ Model \ UPS를 사용하십시오.
  • 변경 : Model_UPS :: get_load(); ~ UPS :: get_load();
+0

이것은 효과가 있습니다! 여러 분야의 이름을 구체적으로 지정해야하는 이유를 설명해 주시겠습니까? 어쩌면 나는 그들이 어떻게 적절하게 상호 작용 하는지를 묻고있다. FuelPHP 문서에는 Model_를 모델 접두어로 사용하는 방법에 대한 메모가 있습니다. 이 작업을 원한다면 model_ups.php, Model_UPS, \ Model \ Model_UPS 및 Model_UPS :: get_load()를 사용합니까? 나는 그것을 시도했다고 맹세 할 수 있었을 것이다. 아마 나는하지 않았다. –

+0

FuelPHP는 Kohana와 비슷한 연쇄 파일 시스템을 사용합니다 (최대 CodeIgniter 지점까지). 이 시스템은 사전 네임 스페이스 시간과 호환되며 밑줄을 사용하여 폴더 계층을 생성하므로 A_B_C는 파일 시스템에서/b/c.php가됩니다. 이제는 전혀 밑줄을 사용하지 않을 것이고, vmartins가 제안한 것처럼 네임 스페이스 만 전혀 사용하지 않을 것입니다. – WanWizard

관련 문제