Отсутствует autoload.php API Google

Раньше я никогда не пользовался API Goodle, а теперь пытаюсь получить доступ к календарю Google через API.

Я загрузил google-api-php-client-master.zip, извлек каталог .../src/Google и скопировал его на свой веб-сервер (размещенный на стороннем сервере, что означает, что я не могу ничего установить). Согласно образцам, мой код должен начинаться с

<?php
require_once "Google/Client.php";
require_once "Google/Service/Calendar.php";
....

но Client.php выдает ошибку:

Неустранимая ошибка: require_once(): Не удалось открыть требуемый файл '' (include_path='.:/usr/lib/php5.4') в /homepages/39/d396519017/htdocs/VC2/Google/Client.php онлайн 18

Client.php-Line 18 это строка require_once realpath(dirname(__FILE__) . '/../../autoload.php');

Но нигде не могу найти autoload.php. Что мне не хватает?

Спасибо!


person Stefan    schedule 17.11.2014    source источник
comment
файл autoload.php находится в базовом каталоге, а не в base/src/Google   -  person user3338098    schedule 09.03.2015
comment
возьмите v1-master, файл есть github.com/google/ google-api-php-client/tree/v1-master   -  person DaImTo    schedule 02.11.2015


Ответы (1)


Это autoload.php файл, который вы ищете.

Гораздо лучше (и проще) не беспокоиться о загрузке каждого файла класса по отдельности и включении этого файла autoload.php в начало примеров, с которыми вы собираетесь начать работать! Убедитесь, что вы поместили файл в папку, содержащую каталог src.

Вы также можете следовать документации по установке и указать папку src в ваш путь включения, используя:

set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/google-api-php-client/src');

При выполнении любого из этих действий вы должны вместо этого использовать операторы use, чтобы включить нужные вам классы.

ОБНОВЛЕНИЕ: Google полностью перешел на использование Composer в своих передовых версиях в соответствии с этим проблема. Вы должны установить Composer и запустить composer require "google/apiclient:~2.0@dev", чтобы получить нужный файл autoload.php, или использовать тег v1.x.x в репозитории. Я обновил ссылку autoload.php на последнюю версию тега v1.

person sjagr    schedule 18.11.2014
comment
Спасибо, очень признателен! - person Stefan; 21.11.2014
comment
@Стефан Нет проблем! Если этот ответ помог вам, было бы здорово, если бы вы отметили серую галочку прямо под стрелками вверх/вниз для этого ответа. - person sjagr; 21.11.2014
comment
Извините, что я пропустил это ... Я новичок в stackoverflow, мне все еще нужно найти выход. - person Stefan; 22.11.2014
comment
@sjagr просто делать use не работает. У него должно быть пространство имен в операторе use, но я не знаю, что такое пространство имен для API Google. - person mightyspaj3; 07.07.2015
comment
@mightyspaj3 Это предполагалось. Это довольно просто с соглашениями PSR, в большинстве случаев вы просто используете структуру папок/файлов. Для примера OP оба use Google\Client; и use Google\Service\Calendar; будут работать (обратите внимание, как это похоже на утверждения require в их вопросе). В случае с файлом autoload.php, на который я ссылаюсь в своем ответе, именно так разрешается пространство имен (через папки). - person sjagr; 07.07.2015
comment
Файл отсутствует, может ли кто-нибудь дать мне ссылку на файл autoload.php? - person Prafulla Kumar Sahu; 02.11.2015
comment
@PrafullaKumarSahu Обновил мой ответ. - person sjagr; 02.11.2015
comment
@sjagr извините, но это уже устарело, может быть, мне нужно сделать что-то еще. Я получил Deprecated: google-api-php-client's autoloader was moved to src/Google/autoload.php in 1.1.3. This redirect will be removed in 1.2. Please adjust your code to use the new location. in E:\work\www\analytica\google-api-php-client\src\Google\autoload.php on line 25 - person Prafulla Kumar Sahu; 02.11.2015
comment
Это только больше или Google оставляет много старых и устаревших документов даже после выпуска новых вещей? Вы ссылаетесь на developers.google.com/api-client-library/php /start/installation, который предлагает использовать google/apiclient: 1.0.*@beta, тогда как последняя версия — 2.+ что-то. - person Jonny; 12.01.2016
comment
@Jonny Это сделано специально, поскольку версии 2.x являются только кандидатами на выпуск на момент написания этого комментария. См. большое примечание к файлу README. - person sjagr; 12.01.2016