2011-09-21 6 views
0

Zend Gdata가 Picasa에서 사진을 가져 오려고합니다. 이건 내 코드입니다 :Yii 프레임 워크에서 Zend Gdata 사용하기

public function getAlbumFeed($albumName){ 
    require_once('Zend/Loader.php'); 
    spl_autoload_unregister(array('YiiBase','autoload')); 
    spl_autoload_register(array('Zend_Loader_Autoloader','autoload')); 
    spl_autoload_register(array('YiiBase','autoload')); 
    Zend_Loader::loadClass('Zend_Gdata'); 
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 
    Zend_Loader::loadClass('Zend_Gdata_Photos'); 
    Zend_Loader::loadClass('Zend_Http_Client'); 

    $svc=Zend_Gdata_Photos::AUTH_SERVICE_NAME; 
    $client=Zend_Gdata_ClientLogin::getHttpClient($this->email, $this->password, $svc); 
    $gphoto=new Zend_Gdata_Photos($client); 

    $query=$gphoto->newAlbumQuery(); 
    $query->setUser('default'); 
    $query->setAlbumName($albumName); 

    try{ 
     $feed=$gphoto->getAlbumFeed($query); 
    } 
    catch(Zend_Gdata_App_Exception $e){ 
     throw new HttpException("Your photos can't find", 404); 
    } 
    return $feed; 
} 

하지만이 스크립트를 실행하면, 내 웹 사이트는 오류 던져 :

Fatal error: Class 'CExceptionEvent' not found in D:\xampp\htdocs\yii\framework\base\CApplication.php on line 703 

당신이 날이 문제를 해결하는 데 도움이 수 있습니까? 고맙습니다.

답변

0

문제의 원인은 예외가 발생했습니다 (코드 끝 부분에 HttpException 일 것임)이고 CApplication::onException 이벤트를 발생시킬 수 있도록 CExceptionEvent 인스턴스를 생성하려고합니다.

그러나 Yii의 클래스 자동 공급기가 자동로드 스택에서 제거되었으므로 PHP가 클래스를 찾을 수 없습니다. - 어쩌면 뭔가

// spl_autoload_unregister(array('YiiBase','autoload')); 
spl_autoload_register(array('Zend_Loader_Autoloader','autoload')); 
// spl_autoload_register(array('YiiBase','autoload')); 

당신은 또한 당신의 spl_autoload 스택 벌어지고 정확히 확인 spl_autoload_functions를 호출 할 수 있습니다 : 그것은 차이가 있는지

은 제거하고 YII의 자동 로더를 추가하고 참조 코드를 주석보십시오 손상되었습니다 :

print_r(spl_autoload_functions()); 
die; // see what the line above prints 

$svc=Zend_Gdata_Photos::AUTH_SERVICE_NAME; 
관련 문제