Разбираемся с файлами /etc/profile и /etc/bashrc

Недавно я столкнулся со следующей проблемой: приложение не сохраняло настройку umask, заданную в профиле root-пользователя, или в файле /etc/profile. Немного разобравшись в вопросе, я понял, что приложение использует только ту настройку umask, которая задана в  /etc/bashrc, не принимая даже те значения, которые являются его же собственными сценариями запуска. Немного изучив вопрос, я понял, […]

Руководство по модульному тестированию. Часть I. Введение в PHPUnit

Вот уже несколько месяцев я вынашиваю идею создания подробной серии статей, которая бы превратила новичка в области тестирования в опытного разработчика. Эта серия статей познакомит вас с основными понятиями в области тестирования. Вы поймете, почему статика это плохо, почему внедрение зависимости играет такую важную роль, какова разница между мок-объектом и […]

Как использовать JMeter для проведения нагрузочного тестирования и производительности вашего веб-приложения

Поскольку приложение JMeter представляет собой Java-приложение, его можно использовать для проведения нагрузочного тестирования любого веб-приложения, включая приложения, написанные на PHP, .NET и т.д. Изначально это приложение предназначалось для тестирования работы Apache Tomcat, который, по сути, представляет собой веб-сервер. С течением времени Jmeter постепенно развивался: пользовательский интерфейс совершенствовался, а также были […]

Базы данных SQL, NoSQL и различия в моделях баз данных

Сегодня довольно сложно представить себе какое-либо приложение, которое не использовало бы базы данных, будь то сервера, персональные компьютеры или мобильные устройства. От простых игр до серьезных бизнес приложений. Все они обрабатывают, читают и записывают определенный набор данных. Система управления базами данных (DBMS/СУБД) — программное обеспечение, предназначенное для хранения и управления […]

Настройка виртуальных хостов в Nginx на Ubuntu 14.04

Будем работать под учетной записью обычного пользователя с sudo правами. Так же вам понадобится установленный веб-сервер Nginx. При желании можно установить полностью LEMP (Linux, Nginx, MySQL и PHP). Чтобы установить Nginx достаточно выполнить следующую команду: sudo apt-get update sudo apt-get install nginx Прежде чем продолжить читать статью, настоятельно рекомендуем выполнить […]

Разбираемся в 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 и […]