Экземпляр класса в API YouTube и в целом

Я делаю некоторую загрузку с помощью API YouTube. В разделе для разработчиков Google http://code.google.com/apis/youtube/2.0/developers_guide_php.html сначала говорит сделать это:

$yt = new Zend_Gdata_YouTube();

затем в разделе AuthSub сделать это:

$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);

затем в прямой загрузке сделать это:

$yt = new Zend_Gdata_YouTube($httpClient);

все это из библиотек ZendGdata.

разве это не одно и то же? Нужно ли мне делать третий экземпляр, если я уже сделал это во второй раз с $httpClient?

Как вы вызываете $httpClient, параметр класса или?


person cikatomo    schedule 09.12.2011    source источник
comment
Не могли бы вы опубликовать ссылки на эти страницы, чтобы мы могли сами их прочитать?   -  person Robert Martin    schedule 09.12.2011
comment
конечно, вот он: code.google.com/apis/youtube /2.0/   -  person cikatomo    schedule 09.12.2011


Ответы (1)


(Отказ от ответственности: я никогда не использовал этот API)

Гид говорит:

Прежде чем вы сможете выполнять какие-либо операции с API данных YouTube, вы должны инициализировать объект Zend_Gdata_YouTube, как показано в следующем примере. (Большинство примеров методов в этом руководстве также работают с экземпляром Zend_Gdata_YouTube.) Обратите внимание, что все операции API, не связанные с получением общедоступного контента, требуют аутентификации.

Итак, если вы планируете использовать объект Zend_Gdata_YouTube для чего-то, что требует аутентификации, вам нужно будет включить все четыре параметра. В противном случае похоже, что для загрузки по-прежнему требуется параметр $httpClient.

Разве это не одно и то же?

Ну да. В самом общем случае вам нужно указать все параметры, но разработчики API знали, что большая часть информации не нужна, поэтому они позволили вам опустить ее, если она не нужна.

Действительно ли мне нужен третий экземпляр?

Я ожидаю, что нет. Я не думаю, что вам нужен второй экземпляр. Если вам нужно сделать несколько вещей с вашим объектом Zend_Gdata_YouTube, просто используйте его повторно. Убедитесь, что при его инициализации вы выбираете конструктор, который включает всю необходимую информацию для любого планируемого вами использования.

Как вы вызываете $httpClient, параметр класса или?

Я не знаю, что вы здесь спрашиваете. Похоже, у вас есть два варианта: AuthSub или ClientLogon. Подробнее см. здесь.

person Robert Martin    schedule 09.12.2011
comment
Я ожидаю, что нет. Я не думаю, что вам нужен и второй экземпляр. первый экземпляр является общим для начала использования API. второй специфичен для авторизации, но в третьем, похоже, я делаю то же самое, что и во втором экземпляре, потому что второй уже содержит тот же $httpClient. - person cikatomo; 09.12.2011
comment
Как вы вызываете $httpClient, параметр класса или? Я не знаю, о чем вы здесь спрашиваете. Я новичок в PHP, поэтому не знаю терминологии Что ж. Вы знаете, как в функции function foo($bar); $bar называется аргументом функции? Является ли в случае класса, например $yt = new Zend_Gdata($httpClient) $httpClient, называемым аргументом класса? Я спрашиваю, потому что я хотел бы прочитать некоторую теорию, стоящую за этим, но не уверен, что искать. - person cikatomo; 09.12.2011
comment
Создайте экземпляр только одного объекта Zend_Gdata_YouTube. Если вы планируете делать с ним несколько вещей, используйте тот конструктор, у которого больше аргументов для того, что вы делаете. Так что, если вы будете делать анонимные действия и авторизованные, используйте конструктор авторизации. - person Robert Martin; 10.12.2011
comment
Класс нельзя вызвать, поэтому аргументы класса отсутствуют. Когда вы вызываете new NameOfClassThing($arg1, $arg2), вы вызываете конструктор класса класса NameOfClassThing. Передаваемые значения используются в качестве аргументов в конструкторе. - person Robert Martin; 10.12.2011