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

Предисловие

В прошлом году компания, в которой я работаю, стала активно переходить на IP-телефонию. Для этих целей был использован дистрибутив FreePBX. Опыта работы с телефонией практически не было, поэтому проблем было много. Всего у нас используется 2 сервера FreePBX, примерно по 30 транков на каждом. Некоторые транки ведут себя не очень хорошо и порой теряют регистрацию. Поэтому возникла необходимость мониторить состояние регистрации, чтобы узнавать о неработающей телефонии раньше пользователей.
Для мониторинга IT-инфраструктуры мы уже давно используем Zabbix. Заводить элементы данных на каждый транк (т.е. около 60) — задача нудная, утомительная и неинтересная. Кроме того, надо постоянно следить за списком транков в мониторинге и актуализировать его. Поэтому, решено было использовать одну из самых интересных особенностей этой системы мониторинга — низкоуровневое обнаружение. Итак, что было сделано.
Читать полностью »

Типограф Муравьёва опубликован на GitHub

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

Велком: https://github.com/emuravjev/mdash

Читать полностью »

в 9:14, , рубрики: framework, laravel, php, метки: , , ,

15-16 мая в Нью-Йорке проходит Laracon — конференция по Laravel.

И, конечно же, на ней выступал Тэйлор Отвелл. В начале своего доклада он просто рассказал о планах на будущее в плане разработки фреймворка и про сообщество.

Но основную часть его доклада заняли анонсы его новинок!

Во-первых, он презентовал Homestead — «коробка» для Vagrant, в которую входит всё, что может понадобиться для разработки на Laravel.

А вот второй анонс заслуживает большего внимания! Добро пожаловать под кат!
Читать полностью »

В этом посте хотелось бы рассказать больше про концепцию панели аналитики. Собственно именно она дает разработчикам уникальные возможности для поиска проблемных по производительности мест в коде.

PRFLR — это система аналитики, направленная на скорейшее обнаружения проблемных по производительности мест в работе приложений. Realtime и непосредственно на Production серверах.

В первую очередь PRFLR ориентирован на высоконагруженные серверные приложения работающие на больших кластерах, однако применим для небольших проектов, десктоп и мобильных приложений. Конечно если вас действительно волнует вопрос их быстродействия.

Читать полностью »

image

Совсем недавно вышла из бета-версии новая система непрерывной интеграции для PHP-проектов с открытым исходным кодом — PHPCI (текущая версия — 1.1.0), она вскользь упоминалась в дайджесте PHP №21.

Я уже какое-то время эксперементирую с этой системой, поэтому хочу представить вам небольшой ее обзор, тем более что на Хабре нет ни одной статьи о ней.

Читать полностью »

Префиксы и постфиксы в PHP (и CSS)

Ещё давно я взял практику использовать префиксы и постфиксы в PHP и в CSS. Особенно это актуально, когда что-то выходит за рамки локальной видимости и находится в глобальном пространстве, взять те же модели в Yii.

Префиксы и постфиксы несут основную задачу – сделать сущность максимально уникальной, причём настолько, чтобы её можно было без проблем найти любым текстовым редактором. На сегодняшний день IDE поддерживают отличную вещь – «Find Usages» (поиск использований), но это не всегда помогает, и об этом я напишу чуть ниже.

Именование в стиле Венгерской нотации мне не пришлось по душе. Такой подход мне не нравился ещё со времён C++ / Delphi – я считал его избыточном и не всегда понятным. Мне понравилась реализация БЭМ, но в полной мере я её тоже не использую. Я постарался вычленить и объединить наиболее понравившиеся мне методы, о них и расскажу.

Читать полностью »

Добрый день! После изучения первой части, я начал искать вторую, но её не оказалось, поэтому решил сам написать перевод. Итак, начнем.

Введение

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

Mediabox – GPL3 web-приложение, позволяющее хранить файлы, воспроизводить audio и video в форматах, которые воспроизводит medialement js, показывать изображения, делать пометки на них, добавлять теги и писать комментарии.

Mediabox

Mediabox продолжает идеи прошлых Ostora FM и Photo, а также является немного измененным Mediabox созданной для компании Xvid.

Читать полностью »

В нашем проекте возникла следующая задача — есть база с большим количеством товаров, на уровне сотен тысяч. У каждого товара есть сотни динамически создаваемых характеристик. Необходимо обеспечить быструю фильтрацию по товарам по набору различных характеристик. Время формирования ответа должно быть не более 0.3 секунды, нужно поддерживать сложную логику в стиле.

(характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из ANDOR

Типичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury/

Пример функционала

У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
Читать полностью »

Обнаружена уязвимость функционала «remember me» в Laravel
Некоторое время назад был опубликован пост с подробным описанием уязвимости функционала «remember me» в фреймворке Laravel. Она позволяла имперсонировать любого пользователя путем создания поддельного кука логина. Разработчики тогда сказали что дыру закрыли. Но более подробный взгляд показывает что гидре отрубали лишь одну голову. Даже если вы не используете данный фреймворк вам все равно будет полезно узнать как не надо имплементировать такой функционал у себя на сайте.

Читать полностью »


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