我们已经使用php 5.6实现了Facebook登录,未发现Class致命错误。
现在,我在本地开发环境中运行它,但是在我收到错误时遇到了一个问题。
请告诉我为什么找不到课程。
* 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 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
?>
此外,FacebookSDK是通过composer.json安装的
答案 0 :(得分:0)
$ _ SERVER [ 'DOCUMENT_ROOT']
要
目录名(____ FILENAME __)
答案 1 :(得分:0)
问题与命名空间有关。假设您的Facebooklogin类的代码已经完成。
这里有2个选项。您可以通过更改
删除针对Facebooklogin类的煽动的命名空间$fblogin = new MyApp\Facebooklogin();
到
$fblogin = new Facebooklogin();
或者您可以在
中添加命名空间namespace MyApp {
class Facebooklogin {
....
}
}
在调用代码中
use MyApp;
$fblogin = new MyApp\Facebooklogin();
我发现此Stackoverflow问题和答案可能会有所帮助Cannot find Class with PHP Namespace