Xwab
Форумыnavigate_nextПрограммирование на PHP

Youtube tools
Сообщения
mixlion

Несколько раз была задача получить прямые ссылки на видео из youtube или просто информацию о видео.
Решил для всего этого написать класс. Думаю, некоторым людям на этом форуме будет интересно посмотреть.
Класс на github (yt.php)
В файле index.php можно посмотреть пример работы с классом.
Буду рад выслушать замечания и пожелания.

v 1.1 Отредактировал систему работы с прокси.
v 1.2 Добавлен метод get
v 1.2.1 Добавлена опция получения длительности при поиске видео (duration)
v 1.3 Теперь все методы статические. Добавлены еще 3 скриншота для метода get_data. Добавлены новые форматы видео.


__________
посл.ред. 13 Янв 2012, 15:07; всего 5 раз(а) 09 Янв 2012, 16:47
san

Хранить список прокси в классе - плохо.
Такие данные должны лежать отдельно, подгружаться если нужно и вообще не распространяться с кодом.

09 Янв 2012, 16:54
mixlion

san, спасибо, учту.

10 Янв 2012, 15:41
mixlion

Версия 1.2.1, подробнее в 1 посте

11 Янв 2012, 17:45
san

Пару советов по рефакторингу.

Все что касается конкретного видео ($this->id, get_video_info(), save(), get_data(), get()) вынести в отдельный класс. Видео это отдельная сущность.
public свойства - плохо. От них лучше избавиться.
Очень много дублирования работы с курл. Дублирование - плохо. Избавляемся.
Youtube_Tools - имя класса как по мне не особо  Возможно влияние Ruby, но я бы убрал _

# Save video (must be used $manager->get_video_info() or $manager->get_links()) - коммент не верен, если ты не запустишь get_video_info, то get_links упадет. и save не сработает.

По поводу вот этого треша с необходимыми вызовами - их быть не должно.
Кешируй информацию и в случаее ее недостачи дергай функцию получения информации из методов get_links, save, etc.
Я не должен помнить, что надо сначала получить инфо, потом линки, а потом только сейвить. Я просто делаю $video->save(), все остальное либа должна сделать сама.

и метод search я сделал бы статическим.

11 Янв 2012, 18:18
mixlion

san, по поводу кеширования, я думаю, это здесь не при чем, это уже работа тех, кто будет использовать класс.
По поводу сущности видео, так в этом классе всё для работы с одним видео, отдельно только поиск.
А так спасибо, поработаю.

11 Янв 2012, 21:34
san

Я не про то кеширование. Ты сейвишь данные о файле в поле $info. А не дергаешь каждый раз get_video_info()
Поэтому лучше будет сделать еще одну функцию, которая если $info пуст, будет запускать get_vidoe_inf() и вызывать ее во всех методах, которым нужен массив $info. Таким образом ты избавишь пользователя от кучи лишних телодвижений, одно из которых он когда нибудь забудет сделать.

11 Янв 2012, 21:47
mixlion

Версия 1.3:
Теперь все методы статические.
Добавлены еще 3 скриншота для метода get_data.
Добавлены новые форматы видео.

13 Янв 2012, 15:06
manyrus

Цитата:
"Теперь все методы статические."
- биг фейл. Теперь гугль, что такое di и чем плоха статика.
добавлено спустя 1 минуту:
Цитата:
" По поводу вот этого треша с необходимыми вызовами - их быть не должно. "
- паттерн facade

13 Янв 2012, 16:26
mixlion

manyrus, что то не гуглится у меня вред статических методов, можно ссылочку, где об этом почитать, и про di?
А так, спасибо за отзыв.

13 Янв 2012, 17:20
Ответить на тему