Метка «PHP» - 38

Dater — определяет часовой пояс, локализует и форматирует дату время в PHP

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

А что если хочется просто несколько строчек кода, и чтобы весь остальной код никогда не узнал, что данные клиенту нужно отдавать в другом часовом поясе, и что в данных пришедших от клиента время может быть указано с часовым поясом отличным от серверного? Для решения этой и многих других задач, сегодня я расскажу вам про одну лаконичную и функциональную библиотеку для PHP.

И так, встречайте — Dater, и его основные возможности:

  • Биндинг форматов
  • Локализация текстов и форматов
  • Расширение списка опций форматирования
  • Автоопределение часового пояса
  • Конвертация времени с учётом часового пояса
  • Автоматическая конвертация времени в $_GET, $_POST, $_REQUEST с учётом часового пояса
  • Автоматическая конвертация часового пояса в шаблоне отправляемых данных

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

Несмотря на то, что внедрение зависимостей в сущности считается плохой практикой с точки зрения DDD, существуют ситуации в которых это очень удобно. Правомерность использования такого подхода, а ровно как и сравнение его с альтернативами (двойная диспетчеризация, события) не является темой данной статьи. Я хочу рассказать о технической реализации — об интеграции Symfony Dependency Injection Component (далее DIC) с Doctrine для автоматического внедрения зависимостей в загружаемые сущности. Используемые версии Symfony и Doctrine — 2.*.
Читать полностью »

В процессе рефакторинга одного проекта, первую итерацию мы написали с душой. ООП, неймспесы, геттеры/сеттеры, и так далее.

В общем, как можно догадаться, оно не взлетело, и вот почему.

На многие вещи в PHP при применении ООП происходит страшный overhead. Вдруг оказывается, что правильные геттеры/сеттеры настолько жрут ресурсы, что неправильные паблик свойства гораздо быстрее, чем можно себе только представить. И еще куча проблем.

Простому тесту и посвящена эта статья, а выводы делать вам самим.
Читать полностью »

Предистория

Начальство поставило задачу организовать смс-рассылку для структурных подразделений организации. Компания-провайдер sms-рассылки предоставляет протокол smpp. Необходимо было организовать рассылку через smpp коротких текстовых сообщений, получать отчеты о доставке. В качестве sms-шлюза был выбран Kannel.
Статья представляет из себя «быстрый старт» по Kannel и содержит в себе базовые настройки шлюза и примеры кода, на основе которых можно написать собственную систему смс-рассылки.
Установка и конфигурирование будет рассматриваться на примере Fedora.

Ремарка

Эта статья не является клоном этой http://habrahabr.ru/post/124302 и этой http://habrahabr.ru/post/123380 статей.
Я знаком с ними и пользовался ими в процессе работы, моя и эти статьи будут иметь много общего, но хотелось как-то систематизировать всю накопленную в процессе работы информацию для дальнейшего использования в работе.
Читать полностью »

Вышел PhpStorm 6.0. Мы делали его для того, чтобы вы писали код еще качественнее, еще проще, еще быстрее.

(кстати, молодец La2ha, что решил опубликовать новость о релизе на Хабре раньше нас, а то мы тормозим очень стараемся все внимательно проверить, прежде чем публиковать)

А теперь — взгляните на подробности о том, что мы добавили и улучшили.

Новый PhpStorm 6.0 облегчает работу с Composer и другими инструментами
Читать полностью »

В PEСL как-то перестали поддерживать расширения для libevent. В частности, libevent версии 2 не поддерживался ни одноимённым расширением libevent, ни расширением event(последний релиз был в 2004 году). Поэтому было решено переписать завалявшееся с 2004 года расширение «event».
Читать полностью »

В недавнем дайджесте интересных ссылок о PHP я обнаружил ссылку на комментарий Никиты Попова на StackOverflow, где он подробно рассказывает о механизме «под капотом» управляющей конструкции foreach.
Поскольку foreach действительно иногда работает более, чем странным образом, я счел полезным сделать перевод этого ответа.

Внимание: этот текст подразумевает наличие базовых знаний о функциональности zval'ов в PHP, в частности вы должны знать что такое refcount и is_ref.
foreach работает со всем, что поддерживает интерфейс Traversable: с массивами, с простыми объектами (где перечисляются доступные свойства) и с Traversable-объектами (вернее, объектами, у которых определен внутренний обработчик get_iterator). Здесь мы, в основном, говорим о массивах, но я скажу и об остальных в самом конце.

Прежде чем приступить, пара слов о массивах и их обходе, важная для понимания контекста.

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

Доброго времени суток, дорогой хабрачитатель.
Сегодня я расскажу, как можно организовать прямую трансляцию изображения с веб-камеры с помощью HTML5/JS и NodeJS, а так же PHP.

В статье наблюдается довольно большое количество кода. Так же эта статья ориентирована скорей на начинающих веб разработчиков, чем на профессионалов.
Читать полностью »

В этой статье я расскажу как создать с нуля виджет для сайта (на примере виджета опросов). Т.к. основной темой статьи все-таки является создание виджета, то создание самого опроса будет рассмотрено поверхностно.

Пошаговое создание виджета для сайта
Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №12 (25.02.2013 — 11.03.2013)

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

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


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