2011-09-08 1 views
0

Zend_Db::factory()을 사용하여 젠드 프레임 워크 Test DbAdapter을 얻고 인스턴스를 얻을 수 있습니까?Zend_Db :: factory()에서 Zend_Test_DbAdapter로드

다음 코드는 있지만 어댑터 사례의 팩시밀리 우표가 있으며 파일 경로가 끊어집니다. 그들의 테스트 어댑터가 그들 자신의 공장에서로드 될 수없는 것은 약간 아이러니하게 보인다. 여기서 내가 뭘 잘못하고 있니? 'DbAdapter'

Zend_Loader::include_once(Zend/Test/Dbadapter.php): failed to open stream: No such file or directory 

은 위의 코드는 직접 복사 및 붙여 넣기, 어댑터 매개 변수의 경우 올바른입니다

업데이트 :

$config = new Zend_Config(
    array(
     'database' => array(
      'adapter' => 'DbAdapter', 
      'params' => array(
       'adapterNamespace' => 'Zend_Test', 
       'host' => 'localhost', 
       'dbname' => 'mydb', 
       'username' => 'not', 
       'password' => 'needed' 
      ) 
     ) 
    ) 
); 

$db = Zend_Db::factory($config->database); 

나는 다음과 같은 오류가 발생합니다. 이것은 파일 케이스 Zend_Test_DbAdapter와 일치합니다.

Zend_Test_DbAdapter을 수동으로 인스턴스화하기 위해 코드를 변경 했으므로 문제없이 자동으로로드됩니다.

$db = new Zend_Test_DbAdapter; 
print_r(get_class($db)); 

출력 :

Zend_Test_DbAdapter 

나는 여전히 Zend_Db::factory() 방법은 내 어댑터 문자의 경우, 상단 케이스의 첫 번째 문자, 하부 케이싱 나머지 nerfing 믿습니다.

+0

나는 이것을 작동시킬 수 없었다. Zend의 어댑터가 지연 연결을 사용하기 때문에 테스트를 위해'pdo_mysql' 어댑터를 사용할 수 있었고'Zend_Db_Adapter_Abstract'의 인스턴스가 내 factory 메소드에서 반환되었다고 주장했습니다. 이것은 내 필요에 충분했지만, Zend_Db :: factory()를 통해'Zend_Test_DbAdapter'의 인스턴스를 얻을 수 없다는 것을 알 수 있습니다. –

답변

0

확인 오타 실수

if not 'adapter' => 'Dbadapter', to 'adapter' => 'DbAdapter', 

Zend/Test/Dbadapter.php does not exits 
Zend/Test/DbAdapter.php exits in library 

또는

파일은 includePath에서 젠드 lib 디렉토리를 추가하거나 그 경우 젠드 프로젝트

/라이브러리에 젠드 파일을 추가 할 필요가

누락 응용 프로그램 /라이브러리 젠드 파일 추가 ( http://framework.zend.com/download에서 다운로드)

+0

코드를 복사하여 여기에 붙여 넣은 것처럼 오타가 아닙니다. 내 코드에서 어댑터의 대소 문자가 올바른지 확인할 수 있습니다. 나는 내 질문을 업데이트하여 후자가 아니라는 것을 확인했다. –