Рубрика «php» - 108

1 июня 2016 года Instagram отключит от своего API все приложения, которые не прошли модерацию. Что делать если вы в их числе?

Предыстория

Мы делаем сервис для постинга в Instagram по расписанию и используем API для получения информации об аккаунтах. Самим постингом занимаются телефоны в автоматическом режиме. Нам отказали в доступе к API после 1 июня (пробовали пройти модерацию два раза) поэтому было решено найти замену.

Сначала расскажу как мы использовали официальный API:

  1. При добавлении аккаунта забираем из Instagram информацию об аккаунте: имя, фото профайла, количество постов, подписчиков, подписок.
  2. Перед тем как опубликовать фото/видео мы запрашиваем количество постов, и тоже самое после публикации, если число постов увеличилось считаем публикацию успешной.
  3. Если публикация прошла успешно забираем ссылку на последнее фото в профайле.
  4. Если пользователь удаляет фото из нашего сервиса, то перед тем как выполнить задачу нужно проверить существует ли такой пост в Instagram (или его удалили).

Реализация

У Instagram есть веб-версия. С помощью нее в приватных аккаунтах можно получить информацию о количестве постов, подписок и подписчиков, а в публичных еще и сами посты, комментарии и лайки. Поэтому, в силу простоты получения, я подумал, что уже написаны подобные библиотеки. Пошел гуглить и нашел только для NodeJS. И для PHP нашелся какой-то код, но всем четырем пунктам не соответствовал. В итоге было решено писать свою библиотеку.
Читать полностью »

PHP-Дайджест № 86 – интересные новости, материалы и инструменты (15 – 29 мая 2016) - 1

Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 1

Здравствуйте. Меня зовут Андрей.
Летом прошлого года я опубликовал проект и статью "Чат-помощник на сайт с помощью Telegram за 15 минут". Идея проекта заключалась в том, чтобы реализовать на сайте всплывающий Чат-помощник, бэкэндом для которого (для чата) был бы набирающий популярность мессенджер Telegram.

На удивление проект довольно быстро стал набирать звезды на GitHub, а я — получать письма благодарности и просьбы о помощи в настройке от людей со всего света. Люди не могли запустить скрипт на своих хостингах: то set_time_limit(0) не поддерживается, то 503 ошибка, то пути не правильно указаны.
Вторая версия скрипта устанавливается намного проще и работает на основе WebHooks.
Читать полностью »

Страница с контактной информацией: валидаторы, формы и электронная почта

Обзор

Теперь у нас есть основные шаблоны HTML, пришло время внедрить немного функционала в одну из страниц. Мы начнем с одной из простейших страниц: страницы контактов. В конце этой части у вас будет форма, которая позволяет пользователям отправлять запросы веб-мастеру.

В этой части:

1. Валидаторы
2. Формы
3. Конфигурация Бандла

Проект на github
Читать полностью »

Представляю вам вольный перевод статьи "Tweaking Eloquent relations – how to get hasMany relation count efficiently?" с сайта softonsofa.com.

Работая с отношениями моделей, вы вероятнее всего хотели бы подсчитать количество полученных элементов (например, комментарии или лайки). Очевидно существуют способы для этого, но не всегда эффективные, особенно когда вы загружаете коллекцию моделей и их отношения.

Что ж, позвольте мне рассказать вам что мы можем с этим сделать.
Читать полностью »

10 месяцев назад я начал делать браузерную игрушку. Выбор пал на cocos js в качестве графики и websocket в качестве общения с сервером. Технология очень понравилась и я на ней организовал всё общение игры с сервером. Использовал для этого эту статью. Но, к сожалению, тот код, который приведен в той статье, нельзя использовать в продакшене. Как выяснилось, уровень проблемы даже не критический, а блокирующий. Всё настолько плохо, что мне пришлось переписывать всё общение с сервером с вебсокетов на longpooling. В итоге я оставил вариант «если у нас браузер не сафари, то использовать websocket, иначе longpolling» и ещё немного ветвления на эту тему.

Так что опыт использования вебсокет в продакшене накопился приличный. И вот недавно случилось событие, которое сподвигло меня написать первую статью на Хабре.
Читать полностью »

DevConf::PHP 2016 — заканчивается финальное голосование по докладам секции, успей отдать свой голос до 31 мая - 1 Коллеги, помогите сформировать программу DevConf 2016 — должны остаться только лучшие и интересные доклады.

DevConf::PHP 2016 — заканчивается финальное голосование по докладам секции, успей отдать свой голос до 31 мая - 2 Голосование продлится до 31 мая, сформируем программу вместе!

Представляем вашему вниманию 13 кандидатов на участие:

— Развитие ветки PHP-7.*
Дмитрий Стогов (Zend,PHPNG)
Я расскажу о внутреннем устройсве PHP-7.0, изменениях готовящихся в PHP-7.1 и планах на PHP-7.2.

Как Badoo перешли на PHP7 и сэкономили $1M
Юрий Насретдинов
Мы сделали это! Несколько сотен наших application-серверов переведены на PHP7 и прекрасно себя чувствуют. Насколько нам известно, это второй переход на PHP7 проекта такого масштаба (после Etsy). В процессе мы нашли несколько очень неприятных багов в системе кеширования байт-кода PHP7, но они исправлены. А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности. Я расскажу, как мы перешли на PHP7, с какими трудностями столкнулись, как с ними боролись и какие результаты получили.

Создание расширений для PHP с помощью Zephir.
Виктор Большов crocodile2u
Zephir — высокоуровневый ЯП, предназначенный специально для создания PHP-расширений (extensions). Код, написанный на Zephir, транслируется в C, с использованием внутреннего API для расширений PHP, и его можно собрать как свое объектно-ориентированное расширение. Это может быть крайне полезно для оптимизации «узких мест» вашего кода: можно добиться ускорения интенсивных вычислений в разы.
Читать полностью »

Вступительное слово

В этой серии статей мы рассмотрим создание блога на Symfony 2. За основу взят и переведён проект разработчика Даррена Риса http://tutorial.symblog.co.uk/. Перед написанием данной статьи я обратился к нему, и он дал своё согласие на перевод с поправками под версию Symfony 2.8 lts, за что я ему очень благодарен.

Также хочется отметить, что эти статьи сделаны для начинающих, я не хочу выступать в роли учителя и у меня нет опыта коммерческой разработки на данном фреймворке. Так что, если это прочтёт человек, который хорошо разбирается в Symfony2 и заметит какие-то недочёты, буду рад критике и замечаниям. Хотелось бы, чтобы каждый, кто имеет возможность и желание, внёс свой вклад в эти статьи и по возможности при обнаружении каких-либо ошибок, багов и т.д. на них указал.

Также вы знаете, что по Symfony2 есть куча документации и статей, в том числе на Хабре, видео на youtube и т.д., так что этот проект не является чем-то новым.

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

Проект доступен на github.

Поехали!
Читать полностью »

Вообще я разработчик фронтенда. Но порой приходится работать и с серверной частью. Команда у нас небольшая, и когда все настоящиебэкенд-программисты заняты, бывает быстрее реализовать какой-то метод самому. А иногда мы садимся вместе поработать над задачами, чтобы не терять времени на перегон коммитов туда-сюда. Недавно во время одного из таких раундов парного программирования мы с товарищем по команде столкнулись с багом, который меня так впечатлил, что я решил с вами поделиться.Читать полностью »

в 9:55, , рубрики: mysql, php, sql

Очень часто я сталкивался с тем, что из каких-либо динамических исходных данных необходимо было формировать SQL запрос в виде строки. Когда ты смешиваешь переменные, функции, массивы и т.д. со строкой с SQL, выглядит очень ужасно, особенно когда запрос получается очень длинным, с кучей условий. В связи с этим я решил упростить себе эту часть программирования написав серию функций.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js