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

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

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

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

Ускоряем Composer

Пакетный менеджер Composer при выполнении команды install или update обращается к файлу composer.json и последовательно обрабатывает указанные в нём пакеты. Если пакетов много, то эта процедура займёт довольно продолжительное время. Проблему могло бы решить распараллеливание процессов. И как раз для решения данной задачи чуть больше года назад был создан плагин Prestissimo. Он позволяет ускорить загрузку пакетов на порядок. (далее…)

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

Данную статью меня побудил написать один интересный момент с объектами, который многие новички, освоив азы языка PHP, до конца не понимают. Давайте рассмотрим следующий код:

class SomeClass{
   public $foo="bar";
};

$instance = new SomeClass(); // Создаём объект
$reference =& $instance;  // Создаём ссылку на объект
$assignment = $instance; // Новой переменной присваиваем созданный объект
// Обнуляем ссылку
$reference = null;
// Выводим переменные
var_dump($instance);
var_dump($reference);
var_dump($assignment);
(далее…)

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

По мере возможностей знакомлюсь с Laravel. Как человек, увлекающийся программированием, чувствую себя как ребёнок в магазине игрушек. Столько интересного. Тут используются почти все современные техноголии — и композер и внедрение зависимостей (Dependency Injection) и полноценная поддержка контроля версий и модульное тестирование и удобная возмножность привыкнуть к стилю работы в командной строке и возможность подтянуть знания в php. Как говорят в спорте — играй с тем, кто лучше тебя, чтобы повысить свой уровень. Этот как раз тот случай. Эти знания пригодятся при освоении любых современных фреймворков. Ещё одним отличием Laravel является то, что он рабработан по концепции MVC (Модель-Вид-Контроллер), согласно которой бизнес-логика отделена от представления. Каждая часть отвечает за свой участок и минимально влияет на другую часть. Данный подход используется во многих современных фреймворках. (далее…)

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

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

При рассмотрении возможностей Composer я буду ссылаться на фреймворк Laravel, так как пишу для пользователей MODX, которые как и я хотели бы познакомится с этим фреймворком поближе. Минимальные требования — понимать, что такое менеджеры зависимостей и в частности Composer, и разобраться с его установкой.
(далее…)

Как быстро проверить работоспособность прокси

Как проверить прокси в консоли Linux curl --proxy "user:pass@host:port" https://google.com Такой способ сработает в любом Linux-дистрибутиве с установленной библиотекой Curl. Также этот вариант будет работать в MacOs и даже Windows в cygwin! Однако, может возникнуть ошибка: curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none Если знаете как её решить — пишите в коменты!

Установка New Relic для PHP 7.1 в CentOs 7 в docker-контейнере

Что такое New Relic и зачем он нужен в этой заметке рассказывать не буду. А расскажу лишь кратко как установить newrelic agent внутрь docker-контейнера для мониторинга производительности приложения. Т.е. речь о APM — Application Performance Monitoring and Management. Рассмотрим 2 варианта: установку в уже запущенном контейнере и настройку через Dockerfile. В данной статье рассмотрена только установка APM-агента в образ docker, установка агента для мониторинга инфраструктуры внутри docker сложна и не имеет смысла. Инфраструктурный агент лучше установить в хостовую систему. (далее…)

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

php-fpm – PHP FastCGI менеджер процессов. Используется в связке с nginx + php. По моему мнению лучшая связка  для веб-сайтов.

Цель

Разобраться в параметрах конфигурации, и решить проблему, которая возникла на продакшен сервере с чрезмерным потреблением оперативной памяти. Произошло это потому, что php-fpm породил множество дочерних процессов, которые с радостью съели память, и, в один прекрасный момент, когда еще запустился парсер, OOM-killer положил мою машину. Причем ночью. На 6 часов. Почему она именно зашатдаунилась, а не ребутнулась – это другой вопрос, но неприятный впечатлений была масса. (далее…)


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть