Я только что установил Google Auth SDK. Я хочу применить его в библиотеке CodeIgniter.
Вот моя библиотека
<?php
class Chatlibrary{
function linkauth(){
$customConfig = (object) array(
'clientID' => 'myIdGoogle',
'clientSecret' => 'MySecretId',
'redirectUri' => 'MyRedirectUri',
'developerKey' => ''
);
require_once 'autoload.php';
$google = new rapidweb\googlecontacts\helpers\GoogleHelper;
$client = GoogleHelper::getClient($customConfig);
$authUrl = GoogleHelper::getAuthUrl($client);
return $authUrl;
}
Я просто хочу позвонить rapidweb\googlecontacts\helpers\GoogleHelper
правильно.
Мой код выше покажет ошибку
Msgstr «Сообщение: не удалось создать экземпляр абстрактного класса rapidweb \ googlecontacts \ helpers \ GoogleHelper».
Кто-нибудь может мне помочь ??
Просто удалите строку $google = new rapidweb\googlecontacts\helpers\GoogleHelper;
Это место, где вы пытаетесь создать экземпляр GoogleHelper, и вы не используете переменную $ google позже, а вызываете статические методы GoogleHelper. Таким образом, вам не нужно создавать его экземпляр вообще.
Если это не поможет, вы можете сделать следующее:
1) Создайте свой собственный класс
class MyGoogleHelper extends rapidweb\googlecontacts\helpers\GoogleHelper
{
//...
}
2) Используйте его вместо rapidweb \ googlecontacts \ helpers \ GoogleHelper
3) Если вы получите ошибки о некоторых не реализованных методах класса, реализуйте их, даже пустые будут хороши для начала.
Вы не можете создать объект для абстрактного класса, который является ошибкой .. попробуйте что-то вроде этого
<?php
use rapidweb\googlecontacts\helpers\GoogleHelper;
class Chatlibrary extends GoogleHelper {
function linkauth(){
$customConfig = (object) array(
'clientID' => 'myIdGoogle',
'clientSecret' => 'MySecretId',
'redirectUri' => 'MyRedirectUri',
'developerKey' => ''
);
$client = GoogleHelper::getClient($customConfig);
$authUrl = GoogleHelper::getAuthUrl($client);
return $authUrl;
}
FYI:
Мы не можем создать экземпляр абстрактных классов. Чтобы использовать методы абстрактного класса, мы должны расширить абстрактный класс в другом классе. В вашем случае вы пытаетесь создать экземпляр абстрактного класса как
$google = new rapidweb\googlecontacts\helpers\GoogleHelper;
Это не разрешено Вы можете просто расширить вышеуказанный класс в Chatlibrary
класс в ответ MihanEntalpo
а также Shibon
и у вас есть доступ ко всем методам абстрактного класса.
Для получения дополнительной информации об абстрактном классе, вы можете обратиться к этот Руководство по PHP.