Сразу оговорю, что ничего инновационного в статье не предлагается. Я просто описываю один небольшой случай работы с чужим кодом. Опытные разработчики, пожалуй, улыбнутся, ибо наверняка с подобным сталкивались и сами, а может и еще хуже. Тех же, для кого это всё в новинку, просьба взять на заметку, как не надо оформлять свой код, уж особенно если речь идет о публичном плагине. В статье далее описывается работа с посторонним плагином для wordpress. После моих “приключений” мне очень не хочется никаким образом упоминать название плагина, поэтому в кусках исходного кода я подменил название переменных, функций, чтобы максимально исключить возможность отсылки к плагину.
Читать полностью »
Рубрика «php» - 74
Опыт выявления одного бага или как не надо оформлять свой код
2017-11-18 в 15:49, admin, рубрики: Code Style, php, wordpress, wordpress pluginsЭффективный video stream для Laravel + FFmpeg + Internet Explorer
2017-11-13 в 11:09, admin, рубрики: ffmpeg, internet explorer, Internet Explorer 11, laravel, laravel 5.3, php, Video streamЯ уверен, что много разработчиков сталкивались с проблемой когда надо максимально быстро воспроизводить огромные видео файлы (4 GB+) на Вашем сайте. Я тоже люблю посмотреть фильмы в онлайн но мне так надоедает ждать, когда он про грузится перед просмотром.
Столкнулся с интересной проблемой а именно с video stream в браузере Internet Explorer 11 который все так обожают. Теперь перейдем к деталям.
Продукт написан на Laravel 5.3, а для транскодирувания видео файла мы используем ffmpeg (создание preview, thumbnail нужных нам размеров, качества + watermark).
Первое на что надо обратить внимание — это атомы. Видео состоит с атомов, в которых храниться информация об субтитрах, главах, видео и аудио и тд… Но особое внимание надо обратить на moov атом. В нем храниться информация как воспроизвести видео, сколько кадров в секунду, какие размеры. Этот атом может лежать где угодно. Если видео маленькое, оно быстро загрузится, в результате уже есть moov атом и система знает как воспроизвести видео.
Но а как же быть если у нас огромные видео файлы? Нужно настроить video stream (потоковую передачу видео файла).
Простыми словами работа происходит так, система делает первый запрос и получает начало видео файла и пытается там найти moov атом, если его нет — делает второй запрос с конца. В конце концов moov атом найден и происходит третий запрос на получение нужного кусочка видео файла для того что бы воспроизвести видео.
Читать полностью »
Во всём виноват PHP OPCache?
2017-11-09 в 13:53, admin, рубрики: opcache, php, realpath, Анализ и проектирование систем, Блог компании Mail.Ru Group, Компиляторы, никто не читает теги, Проектирование и рефакторинг
Когда я начинал карьеру разработчика, то очень удивился, прочитав фразу, которую приписывают Филу Карлтону (Phil Karlton): «В информатике есть лишь две сложности: инвалидация кеша и присвоение имён». Я отнёсся к этому недоверчиво, поскольку не понял сути фразы. Но немного позже я начал понимать.
Я хочу рассказать о проблеме, с которой мы столкнулись не так давно в нашей production-инфраструктуре. Сразу после успешного развёртывания при обновлении страниц, изменённых новым релизом, какое-то время не отображался новый код. Вообще-то такое далеко не редкость для веб-приложений, написанных на PHP. Мы сталкивались с подобным и раньше, а после перехода на новую production-среду проблема стала заметнее. Поэтому мы решили заняться расследованием.
Анонс митапа ThinkPHP #15 в Харькове
2017-11-08 в 6:40, admin, рубрики: php, thinkphp, Блог компании NIX Solutions, встреча, митап, Программирование, Разработка веб-сайтов
Приглашаем всех на уже пятнадцатую встречу ThinkPHP-сообщества! Актуальные темы, насыщенные доклады, оживленные кофе-брейки — идеальная атмосфера для того, чтобы поговорить о тенденциях современной веб-разработки и круто провести пятницу.
Читать полностью »
Создание резервной копии большой удалённой БД средствами YII2
2017-11-07 в 11:40, admin, рубрики: jquery, mysql, php, yii, yii2 framework, Администрирование баз данных, Алгоритмы, бекап базы данныхНедавно мне довелось выполнить один маленький и интересный заказ Его суть заключалась в том, чтобы по нажатию кнопки с удалённого сервера БД скопировать БД (её приблизительный размер составляет почти 800Mb) на тестовый сервер и после выполнить ряд изменений в структурах таблиц.
Казалось бы, что нет ничего проще берём выполняем на удалённом сервере запрос вида:
mysqldump -uLogin -pPassword db_name > db_name.sql
и забрать потом файл, но в моём случае это оказался сервер БД без возможности выкачать оттуда файл, поэтому мне пришлось изловчиться и написать свой механизм экспорта из этой удалённой БД средствами YII2, с которым я был на тот момент не так сильно знаком.
Самотестируемая система с оповещениями на Laravel + Bitbucket + HipChat
2017-11-05 в 14:58, admin, рубрики: bitbucket, ci, curl, Git, hipchat, laravel, phpВ этой статье я расскажу, как можно оперативно настроить автоматическое стягивание нового кода на тестовый сервер вашего laravel-приложения, автозапуск тестов и оповещение о результате в соответствующий корпоративный чат. А также отлавливание новых ошибок в laravel.log
Читать полностью »
Африканский эксперимент Битрикс24
2017-11-03 в 8:01, admin, рубрики: 1С-Битрикс, asterisk, CRM, CRM-системы, cross-platform, ERP-системы, ip-телефония, php, Битрикс24
“А-а в Африке реки вот такой ширины!
а-а в Африке горы вот такой вышины!”
Эти строки уносят нас в далекое детство и напоминают нам о приключениях Красной шапочки из одноименной сказки. Но поговорим мы сегодня не о художественной части этого произведения, а о том, как мы внедряли Битрикс24 в одну крупную компанию в Южно-Африканской Республике. Читать полностью »
Состоялся релиз PHP фреймворка Yii версии 2.0.13. В него вошли более 90 улучшений и исправлений.
Обратите внимание, что в релиз попали изменения, которые могут повлиять на существующие приложения. Они описаны в UPGRADE.md.
Огромное спасибо сообществу Yii за поддержку и пулл-реквесты!
За процессом разработки можно следить поставив звёздочку на GitHub. Также подписывайтесь
на наш Twitter и Facebook.
Так как мы работаем над Yii 2.1, убедитесь что версия фреймворка в composer.json прописана верно (~2.0.13) и вы не обновитесь на 2.1 случайно когда он релизнется.
Ниже мы рассмотрим самые интересные улучшения и исправления релиза. Полный список можно найти в CHANGELOG.
Создаем сервер для потокового видео: глава из книги по PHP от нашего разработчика
2017-11-01 в 9:09, admin, рубрики: php, ReactPHP, асинхронные функции, Блог компании Skyeng, видеостриминг, потоковое видео, Профессиональная литература, Разработка веб-сайтов, учебник
У нас в Skyeng работают весьма талантливые люди. Вот, например, бэкенд-разработчик Words Сергей Жук написал книгу про событийно-ориентированный PHP на ReactPHP, основанную на публикациях его блога. Книга англоязычная, мы решили перевести одну самодостаточную главу в надежде, что кому-то она сможет пригодиться. Ну и дать скидочную ссылку на всю работу.
Читать полностью »

