关于php:无法在库codeigniter中实例化抽象类

Cannot instantiate abstract class in library codeigniter

我刚安装了一个Google授权SDK。我想把它应用到代码点火器库中。

这是我的图书馆

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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".

有人能帮我吗??


供参考:

我们不能创建抽象类的实例。我们使用的方法的抽象类的抽象类都延伸在另一个类。在你的情况下,你是在试图instantiate的抽象类

$google = new rapidweb\googlecontacts\helpers\GoogleHelper;

这是不允许的。你可以简单地用在Chatlibrary级以上级)和ShibonMihanEntalpo的回答和你的访问的抽象类的所有方法。

关于抽象类的更多信息,你可以参考本PHP手册。


你不能创建抽象类的对象能够被认为是错误的。尝试一些像这样的东西

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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;
}


只是删除线$google = new rapidweb\googlecontacts\helpers\GoogleHelper;

这是一个地方,你的instantiate googlehelper试图和你使用谷歌变元后,可googlehelper调用静态方法。所以,你需要instantiate它在所有。

如果它不是你能帮助的,如下:

1)创建你自己的类

1
2
3
4
class MyGoogleHelper extends rapidweb\googlecontacts\helpers\GoogleHelper
{
 //...
}

2)使用它,而不是rapidweb googlehelper googlecontacts助手

3)如果你非要在一些错误的类实现的方法的实现将是空的。whem,甚至精细的启动。