Правильный взгляд на временные зоны в PHP

Это небольшая статья о том, как работать с временными зонами при хранении значений даты / времени в базе данных. Базы данных или язык программирования, который вы решите использовать, решающего значения не имеет, так как описываемые в статье явления универсальны. Свои действия я буду показывать на примере использования связки MySQL и […]

Composer: Управление версиями

Если вы не знаете, что такое Composer, немедленно переходите на сайт Composer и начинайте изучать. Я знаю многих людей, которые сталкиваются с ограничениями, связанными с использованием Composer-зависимостей. Надеюсь, этот пост поможет пролить свет на то, почему некоторые моменты при работе с версиями являются нежелательными и как их избежать. Я начну свой пост […]

Управление событиями в Laravel

В этой статье мы попробуем разобраться как запускать события и как их обрабатывать. Напомню, что событие — это своего рода сообщение, возникающее в определенный момент времени. Некоторые события уже определены в Laravel, но в основном эта задача ложится на плечи разработчика. И так, у нас есть сообщение. Оно, как правило, […]

События в Laravel. Введение

Любое серъезное приложение имеет механизм событий. Они позволяют взаимодействовать различным функциональным частям приложения друг с другом. И Laravel не исключение. Начать изучение можно с официальной документации (на русском языке). Несмотря на довольно подробное описание, у начинающих знакомится с Laravel возникает большое количество вопросов. Это потому, что этот материал хоть и не сложный, […]

Копирование объектов в PHP

Данную статью меня побудил написать один интересный момент с объектами, который многие новички, освоив азы языка PHP, до конца не понимают. Давайте рассмотрим следующий код: class SomeClass{ public $foo=»bar»; }; $instance = new SomeClass(); // Создаём объект $reference =& $instance; // Создаём ссылку на объект $assignment = $instance; // Новой […]

Порассуждаем о Laravel и ModX

По мере возможностей знакомлюсь с Laravel. Как человек, увлекающийся программированием, чувствую себя как ребёнок в магазине игрушек. Столько интересного. Тут используются почти все современные техноголии — и композер и внедрение зависимостей (Dependency Injection) и полноценная поддержка контроля версий и модульное тестирование и удобная возмножность привыкнуть к стилю работы в командной […]

Разберёмся с Composer

В этой статье я постараюсь раскрыть некоторые моменты, которые часто бывают непонятны начинающим осваивать Composer пользователям. Я не буду рассказывать что такое Composer и как установить. Такой информации уже предостаточно. А вот что такое composer.lock файл или почему команда install не устанавливает указанный пакет смогут ответить не все. Поэтому давайте пробежимся по этим вопросам. […]

PHP-FPM. НАСТРОЙКА И ТЮНИНГ

php-fpm – PHP FastCGI менеджер процессов. Используется в связке с nginx + php. По моему мнению лучшая связка  для веб-сайтов. Цель Разобраться в параметрах конфигурации, и решить проблему, которая возникла на продакшен сервере с чрезмерным потреблением оперативной памяти. Произошло это потому, что php-fpm породил множество дочерних процессов, которые с радостью съели […]

Настройка и highload-тюнинг php-fpm

Попробуем определить каким образом можно повысить производительность сервера приложений на базе php-fpm, а также сформировать чек-лист для проверки конфигурации fpm процесса. Прежде всего стоит определить расположение файла-конфигурации пула. Если вы устанавливали php-fpm из системного репозитория, то конфигурация пула www будет расположена примерно тут /etc/php5/fpm/pool.d/www.conf. В случае если используется свой билд или другая ОС […]

Оптимизация PHP-FPM: максимальная производительность и pm static

Давайте кратко рассмотрим, как лучше настроить PHP-FPM для высокой пропускной способности, низкой задержки и более стабильного использования процессора и памяти. В большинстве дефолтных настроек PHP-FPM есть строка с PM (process manager), установленным в dynamic, а также рекомендации по использованию ondemand, в том случае если вы столкнулись с проблемами доступной памяти. Однако, давайте взглянем […]