2012-11-20 69 views
0

我正在使用FOSUserBundle與FOSFacebookBundle的示例。在此之後,我構建了我的應用程序。如何包含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'); 

... 

正如你可以看到已經有可用的Facebook的對象。 我想現在做的是幾乎相同的,但在我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的類沒有命名空間,你必須做一些像

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

問題是在這裏:

use \BaseFacebook; 
use \FacebookApiException; 

您從導入BaseFacebook類命名空間應該使用\ Facebook(在Controller和FacebookProvider類中)