-1

We have implemented Facebook login with php 5.6,Class not found fatal error occurs.

Now,I am running it in the local development environment, but I got a question as I got an error.

Please tell me why class is not found.

*fb_sighup.php

require_once($_SERVER['DOCUMENT_ROOT'] . '/config/fb_login_config.php');

$fblogin = new MyApp\Facebooklogin(); //error occured

try {
  $fblogin->sighup();
} catch (Exception $e) {
  echo $e->getMessage();
  exit;
}
?>

*Facebooklogin class

 class Facebooklogin {
  private $_fb;

  public function __construct() {
    $this->_fb = new \Facebook\Facebook([
      'app_id' => APP_ID,
      'app_secret' => APP_SECRET,
      'default_graph_version' => APP_VERSION,
    ]);
  }

  public function sighup() {
    $helper = $this->_fb->getRedirectLoginHelper();

    $loginUrl = $helper->getLoginUrl(CALLBACK_URL);
    header('Location: ' . $loginUrl);
    exit;
  }
}//class facebooklogin
?>

In addition, FacebookSDK is installed via composer.json

2 Answers 2

0

The problem is to do with namespacing. Assuming the code for your Facebooklogin class is complete.

You have 2 options here. You can remove the namespacing for the instigation of the Facebooklogin class by changing

$fblogin = new MyApp\Facebooklogin();

to

$fblogin = new Facebooklogin();

or you can add the namespacing in

namespace MyApp {
    class Facebooklogin {
        ....
    }
}

And in the calling code

use MyApp;

$fblogin = new MyApp\Facebooklogin();

I find this Stackoverflow question and answer may help Cannot find Class with PHP Namespace

Sign up to request clarification or add additional context in comments.

Comments

0

$_SERVER['DOCUMENT_ROOT']

To

dirname(____FILENAME__)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.