Используйте API Google Диска в Laravel 5

Я новичок в Laravel, и наверняка на этот вопрос есть очевидный ответ, но мне не удалось связать Laravel 5 с Google Api.

Я установил API с композитором, как всегда, и он находится в папке моего поставщика, но теперь я не уверен, как его использовать.

Я не нашел ответа на этот вопрос (потому что это должно быть очень просто).

Вероятно, я пропускаю вызов пространства имен или что-то в этом роде.

На моем IndexController у меня есть:

    <?php 

namespace App\Http\Controllers;

class IndexController extends Controller {

    /**
     * Show the application welcome screen to the user.
     *
     * @return Response
     */
    public function index()
    {
      $client = new Google_Client();
      $client->setApplicationName("Client_Library_Examples");
      $client->setDeveloperKey("HERE_GOES_MY_KEY");

      $service = new Google_Service_Drive($client);
      $results = $service->volumes->listVolumes();

      foreach ($results as $item) {
        echo $item['volumeInfo']['title'], "<br /> \n";
      }
    }

}

И ошибка, которую я получаю:

Класс «App\Http\Controllers\Google_Client» не найден

Я думал, что это может быть проблема с autoload_classmap, но там определены все классы GoogleApi, например:

(...)

'Google_Client' => $vendorDir . '/google/apiclient/src/Google/Client.php',

(...)

'Google_Service_Drive' => $vendorDir . '/google/apiclient/src/Google/Service/Drive.php',

Спасибо за ваше терпение и вашу помощь!


person user3592436    schedule 08.04.2015    source источник


Ответы (2)


Я думаю, что он у меня есть.

Мне нужно только установить:

use Google_Client; 
use Google_Service_Drive;
person user3592436    schedule 08.04.2015
comment
Или вы можете использовать имена классов с полным пространством имен, если вы собираетесь использовать их только один раз. Похоже, $client = new \Google_Client() подойдет. Обычно корневое пространство имен \ используется по умолчанию, но, поскольку вы находитесь в пользовательском пространстве имен, вам нужно указать другое, либо используя ваш подход, либо мой. Вы можете видеть, что PHP предположил, что класс без пространства имен может быть найден в App\Http\Controllers — том же пространстве имен, что и ваш текущий класс. - person halfer; 08.04.2015

проверьте файл composer.json

и добавьте «vendor/google/apiclient/src/Google» в массив classmap, если он не существует.

и запустить composer dump-autoload

"autoload": {
        "classmap": [
            "vendor/google/apiclient/src/Google"
        ]
}
person tushar zore    schedule 27.02.2019