无法在库 codeigniter 中实例化抽象 class
Cannot instantiate abstract class in library codeigniter
我刚刚安装了 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
。
我上面的代码会显示错误
"Message: Cannot instantiate abstract class rapidweb\googlecontacts\helpers\GoogleHelper".
谁能帮帮我??
只需删除行 $google = new rapidweb\googlecontacts\helpers\GoogleHelper;
这是你尝试实例化GoogleHelper的地方,后面你不使用$google变量,而是调用GoogleHelper的静态方法。所以,你根本不需要实例化它。
如果没有帮助,您可以执行以下操作:
1) 创建您自己的 class
class MyGoogleHelper extends rapidweb\googlecontacts\helpers\GoogleHelper
{
//...
}
2) 用它代替 rapidweb\googlecontacts\helpers\GoogleHelper
3) 如果你会得到关于 class 的一些未实现方法的错误,实现 whem,即使是空的也可以作为开始。
你不能为抽象创建对象 class 那是错误..试试这样的东西
<?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;
}
仅供参考:
我们无法创建抽象 classes 的实例。要使用抽象 class 的方法,我们必须在另一个 class 中扩展抽象 class。在您的情况下,您正在尝试将抽象 class 实例化为
$google = new rapidweb\googlecontacts\helpers\GoogleHelper;
这是不允许的。 您可以简单地在 Chatlibrary
class 中扩展上述 class ,如 MihanEntalpo
所回答和 Shibon
并且您可以访问抽象 class.
的所有方法
关于摘要的更多信息class,可以参考thisPHP手册。
我刚刚安装了 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
。
我上面的代码会显示错误
"Message: Cannot instantiate abstract class rapidweb\googlecontacts\helpers\GoogleHelper".
谁能帮帮我??
只需删除行 $google = new rapidweb\googlecontacts\helpers\GoogleHelper;
这是你尝试实例化GoogleHelper的地方,后面你不使用$google变量,而是调用GoogleHelper的静态方法。所以,你根本不需要实例化它。
如果没有帮助,您可以执行以下操作:
1) 创建您自己的 class
class MyGoogleHelper extends rapidweb\googlecontacts\helpers\GoogleHelper
{
//...
}
2) 用它代替 rapidweb\googlecontacts\helpers\GoogleHelper
3) 如果你会得到关于 class 的一些未实现方法的错误,实现 whem,即使是空的也可以作为开始。
你不能为抽象创建对象 class 那是错误..试试这样的东西
<?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;
}
仅供参考:
我们无法创建抽象 classes 的实例。要使用抽象 class 的方法,我们必须在另一个 class 中扩展抽象 class。在您的情况下,您正在尝试将抽象 class 实例化为
$google = new rapidweb\googlecontacts\helpers\GoogleHelper;
这是不允许的。 您可以简单地在 Chatlibrary
class 中扩展上述 class ,如 MihanEntalpo
所回答和 Shibon
并且您可以访问抽象 class.
关于摘要的更多信息class,可以参考thisPHP手册。