как использовать Google Docs API из PHP на плане общего хостинга?

#php #zend-framework #google-docs #google-docs-api #zend-gdata

#php #zend-framework #google-docs #google-docs-api #zend-gdata

Вопрос:

Я хотел бы прочитать-записать определенные ячейки в электронной таблице Google, но я озадачен большим количеством информации в Интернете о том, как это сделать. У меня есть доступ только к общему хостингу (что означает доступ по FTP и панель управления), а не к виртуальному серверу.

На официальной странице API Google Docs поддержка PHP доступна только в версии 1, в которой указано, что она устарела, и она уже в версии 3, поэтому мне не следует начинать ее использовать.

На этой странице:http://code.google.com/apis/gdata/docs/client-libraries.html в нем говорится, что клиентская библиотека PHP является

Распространяется как часть zend.

находясь на этой странице:http://code.google.com/apis/gdata/articles/php_client_lib.html в нем говорится

Клиентская библиотека является частью Zend Framework с открытым исходным кодом, но также может быть загружена как отдельная версия.

Моя самая большая проблема в том, что я никогда не использовал Zend и не знаю, как им пользоваться или как устанавливать / обновлять его пакеты. Возможно ли установить / обновить этот фреймворк и его пакеты от простого пользователя общего хостинга? Или я застрял на том, что нахожу на серверах конкретной хостинговой компании?

Я загрузил последнюю версию с этой страницы:http://framework.zend.com/download/gdata и в его установочном файле говорится:

Zend Framework не требует специальных действий по установке. Просто загрузите фреймворк, распакуйте его в папку, в которой вы хотели бы его сохранить, и добавьте каталог библиотеки в свой PHP include_path. Чтобы использовать компоненты в библиотеке extras, добавьте также каталог extras / library в свой PHP include_path. Если вы хотите использовать Zend_Tool, просто добавьте bin/zf.bat (для Windows) или bin/zf.sh (для чего-либо еще) к вашему системному исполняемому файлу.

Я думаю, что include_path означает некоторую переменную в php.ini, а не то, к чему у меня есть доступ. Могу ли я просто загрузить / извлечь zend в свою папку и выполнить include_once() в начале моего кода?

Ответ №1:

Вы захотите связаться со своим хостинг-провайдером, чтобы узнать, установлен ли у них Zend framework. Если они это сделают, попросите их указать путь включения.

Если нет, вы можете загрузить библиотеку, разархивировать ее и загрузить в корневой каталог вашего веб-сайта.

Модуль GDATA является частью Zend Framework.

Допустим, вы загрузили фреймворк в папку под названием Zend в корневом каталоге вашего веб-сайта.

/www/Zend/

Затем вам нужно указать php использовать это в качестве пути включения, вот так.

 set_include_path($_SERVER['DOCUMENT_ROOT'] . '/Zend/');
  

Оттуда вы можете использовать функцию автозагрузчика для обработки загрузки классов оттуда и далее, вот так…

 require_once 'Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
  

Затем следуйте документам для библиотеки GDATA…..

 $service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$spreadsheetService = new Zend_Gdata_Spreadsheets($client);
  

Ответ №2:

Взгляните на это:http://php.net/manual/en/function.set-include-path.php

 set_include_path — Sets the include_path configuration option
  

Комментарии:

1. Конечно, только при необходимости, include_once(), вероятно, выполнит эту работу.

2. нет, много вызовов в Zend (и автозагрузчике Zend) require других файлов в виде require_once "ZendFile.php" . Поэтому, если вы не включаете все файлы самостоятельно, вероятно, проще задать путь к включению.

3. Но вы говорите, что я должен загрузить весь Zend Framework целиком и извлечь его куда-нибудь в папку FTP? Что происходит, когда на хосте уже установлена версия Zend, и я хочу использовать ту, которую я предоставляю? Будет ли set_include_path иметь приоритет над установленным?

4. В документах указано, что этот компонент можно использовать без zend framework. Итак, я предполагаю, что вы просто загружаете этот компонент на свой веб-сервер и вызываете set_include_path. Если вы прочитаете документацию set_include_path, вы увидите, что она переопределяет include_path . В примере кода в документе php показано, как использовать get_include_path и добавлять к нему свой путь при настройке нового include_path. У вас есть полный контроль над include_path.