2012-11-20 4 views
0

FOSFacebookBundle에서 FOSUserBundle의 예를 사용하고 있습니다. 여기에 내 응용 프로그램을 빌드했습니다.Facebook-SDK를 포함하는 방법

관련 프로젝트 구조는 다음과 같다 다음 FacebookProvider의

src\ABC\MainBundle\ 
src\ABC\UserBundle\ 

src\ABC\MainBundle\Controller\DefaultController.php 

src\ABC\UserBundle\Security\User\Provider\FacebookProvider.php 

vendor\facebook\php-sdk\src\base_facebook.php 

부 :

use \BaseFacebook; 
use \FacebookApiException; 

class FacebookProvider implements UserProviderInterface 
{ 

protected $facebook; 

public function __construct(BaseFacebook $facebook, $userManager, $validator) 
{ 
    $this->facebook = $facebook; 
} 

public function loadUserByUsername($username) 
{   
    try { 
     $fbdata = $this->facebook->api('/me'); 

... 

당신은 페이스 북-Object가 이미이 볼 수 있듯이. 내가 지금 무엇을 원하는 은 거의 동일하지만, 내 DefaultController에 :

use \BaseFacebook; 
use \FacebookApiException; 

class DefaultController extends BaseController 
{ 
    public function indexAction(){ 
     $facebook = new Facebook('key', 'secret'); 
     $fbfriends_obj = $facebook->api('/'.$fbid.'/friends'); 
... 

하지만 거기에 내가 메시지

Fatal error: Class 'ABC\MainBundle\Controller\Facebook' not found in C:\xampp\htdocs\...\src\ABC\MainBundle\Controller\DefaultController.php on line x 

이유는 무엇입니까 얻을? 내 defaultcontroller 내부에서 facebook-class에 어떻게 접근 할 수 있습니까? facebook 공급자를 위해 이미 가능하다면 컨트롤러가 왜 필요하지 않습니까?

모든 힌트는 정말 감사하겠습니다!

답변

0

그 문제에 대한 해결책은, 페이스 북의 클래스는 네임 스페이스가 없습니다 당신이

$facebook = new \Facebook(...) 
0

문제 같은 것을 할 필요가 있다고 여기입니다 : 당신은에서 BaseFacebook 클래스를 가져

use \BaseFacebook; 
use \FacebookApiException; 

네임 스페이스는 \ Facebook (Controller 및 FacebookProvider 클래스에서)을 사용해야합니다.

관련 문제