Разбираемся в HTTP прокси NGINX, балансировке нагрузки, буферизации и кешировании

В этой мы рассмотрим возможности сервера NGINX в http проксировании, что помогает перенаправлять запросы на бекэнд сервера для дальнейшей обработки. Довольно часто Nginx настраивают в качестве реверсивного прокси для упрощения масштабирования инфраструктуры или для перенапраления запросов на сервера, которые не предназначены для работы при большой нагрузке. Также мы затронем каким […]

Шаблоны проектирования в PHP

Что же такое шаблоны проектирования? Шаблоны проектирования это не шаблоны анализа, это не описания стандартных структур (например, связанных списков). Это не определенные разработки приложений или фреймворков. По сути, шаблоны проектирования это «описания взаимодействующих объектов и классов, предназначенных для решения общей проблемы проектирования в определенном контексте». Иным словами, шаблоны проектирования предоставляют […]

Непрерывная интеграция для PHP-проектов с помощью PHP Censor

В настоящий момент получила широкое распространение практика Continuous integration (CI) (а так же практики Continuous Deployment и Continuous Delivery, которые ей сопутствуют), которая позволяет запускать различные проверки кода и тесты автоматически. Тем самым гарантируется непрерывный контроль качества и работоспособности кода, в отличии от избирательных ручных запусков тестов и проверок. Сервер непрерывной интеграции […]

Как удалить образы, контейнеры и тома Docker

Docker позволяет с легкость упаковать ваши приложения и службы в контейнеры, благодаря чему вы можете запускать их на любой платформе. Однако, по мере работы с Docker у вас запросто может накопиться избыточное количество ненужных образов, контейнеров и томов, которые наводят бардак в выходных данных и загромождают собой место на диске. Хотя […]

Symfony 4: маршрутизация, контроллеры и шаблоны

Symfony 4 продолжает обретать репутацию высокоэффективного фреймворка в сообществе PHP. Даже те разработчики, которые не пробовали его ранее, теперь дают ему шанс. У Мэттью Сэттера есть отличная история о его опыте работы с Symfony 4. В моих прошлых статьях я рассуждал о том, как установить Symfony 4 на Cloudways и […]

Микрофреймворк Symfony

Symfony всегда можно было использовать в качестве микрофреймворка. Среди других микрофреймворков, которые позволяют вам добавлять в них все, что пожелаете, можно выделить Empty Edition и MicroFrameworkBundle. Существует множество критериев, за счет которых фреймворк классификацируется как «микрофреймворк». Вот некоторые из них: небольшой API (использование кода фреймворка в вашем приложении) мало строк кода (LOC) мало […]

Улучшенная сериализация с Symfony

Если вы когда-либо создавали сценарий экспорта или API, то вам наверняка приходилось форматировать свой контент и иметь дело с сериализацией. В Symfony этой задачей зачастую занимается JMS Serializer (так указано в документации Symfony). Но попользовавшись JMS Serializer в нескольких проектах, я остался им не совсем доволен. Я столкнулся с мелкими недочетами, преимущественно […]

Зачем нужны фреймворки?

Статья для начинающих программистов (попытка привести понятные обоснования). Тот самый вопрос, который задает начинающий программист, и на который обычно получает расплывчатый ответ от опытных разработчиков: «это удобно», «быстрее разработка» и тому подобная, с точки зрения задающего, ерунда. Ситуацию осложняет тот факт, что проекты на фреймворках работают обычно медленнее аналогичных, написанных «с […]

Полезные утилиты для работы с файлами в Linux

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

Определить включен ли компьютер через сеть

Сегодня напишем простой скрипт на языке shell, который будет определять включен ли компьютер, находящийся в сети. Например, нужно, чтобы туннель на роутере поднимался только, когда клиентская машина включена и разрушался, при ее выключении. Вот такая у нас будет схемка, в качестве VPN сервера может выступать маршрутизатор филиала фирмы. Или, может быть, вы захотите, […]