FOSFacebookBundle を使用した FOSUserBundle の例を使用しています。ここで私は自分のアプリケーションを構築しました。
関連するプロジェクト構造は次のようになります。
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
FacebookProvider の一部:
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-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 にアクセスするにはどうすればよいですか? facebookprovider で既に可能である場合、なぜ私のコントローラーで可能ではないのですか?
どんなヒントでも大歓迎です!