如何存储我的Google云端硬盘服务以避免在每次通话中重新创建?

时间:2013-09-25 06:46:53

标签: php google-drive-api delegation

我正在使用上面的代码https://developers.google.com/drive/delegation来访问特定的Google云端硬盘帐户:

function buildService($userEmail) {
    global $DRIVE_SCOPE, $SERVICE_ACCOUNT_EMAIL, $SERVICE_ACCOUNT_PKCS12_FILE_PATH;
    $key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH);
    $auth = new Google_AssertionCredentials(
        $SERVICE_ACCOUNT_EMAIL,
        array($DRIVE_SCOPE),
        $key);
    $auth->sub = $userEmail;
    $client = new Google_Client();
    $client->setUseObjects(true);
    $client->setAssertionCredentials($auth);
    return new Google_DriveService($client);
}

它工作正常,但对象的创建速度很慢。我想将该服务存储在会话中,以避免在每次向服务器发出请求时重新创建它。序列化是不可能的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果要在同一个脚本执行中重用服务,可以使Singleton存储所需的所有方法。

在这种情况下,您的类会被实例化一次,当您再次调用时,将返回上一个实例,而不是创建一个新实例。