无法在库 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手册。