Серверная логика
Обработка запросов и выполнение правил, которым нельзя доверять браузеру.
PHP · BIG FISH
Разрабатываем серверную часть сайтов и сервисов: обработку запросов, интеграции, документы и работу с данными. Выбираем архитектуру под задачу и поддерживаемость проекта.
ВОЗМОЖНОСТИ ПРОДУКТА
Обработка запросов и выполнение правил, которым нельзя доверять браузеру.
Приём событий, проверка данных и согласованная запись результата.
Подготовка выгрузок и отчётов с контролем доступа и ошибок.
ЖИВОЙ ПРИМЕР
Обработчик уведомлений об оплате: событие проверяется и применяется один раз. Повтор с тем же идентификатором не увеличивает сумму повторно.
Учебный пример с условными данными. Действия остаются в браузере. Это модель сценария, а не подключённая CMS, сервер или база данных.
АРХИТЕКТУРА СЦЕНАРИЯ
| Слой | Результат |
|---|---|
| Интерфейс | Понятны ввод, ограничения, загрузка и ошибки. Доступно управление клавиатурой. |
| Данные | У значений есть владелец, формат и правила актуальности. |
| Выпуск | Проверены ключевые сценарии, резервирование и восстановление. |

BIG FISH · PHP
Заказная разработка на PHP требует ясного интерфейса для действий, которые выполняются на сервере. После отправки формы пользователь должен понимать, принят ли запрос, какие данные сохранены и что произойдёт дальше.
В веб-сервисах и личных кабинетах на PHP показываем историю операций, подтверждения и причины отказа доступным языком. Права доступа и проверки остаются на сервере, а интерфейс объясняет их результат без технических сообщений.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Архитектура, ограничения и проверяемые сценарии. Конкретную конфигурацию согласуем по требованиям проекта.
PHP / 01
PHP — язык, а не готовая архитектура продукта. Приложение может использовать фреймворк или набор библиотек, но структура должна оставаться понятной: входные запросы, бизнес-правила, данные и внешние системы. Начинаем с ответственности модулей и сценариев ошибок. Не смешиваем генерацию HTML, отправку платежа и изменение базы в одном обработчике.
Проверка на проекте
Бизнес-правило проверяется вне HTML-шаблона.
PHP / 02
Описываем обязательные поля, типы, допустимые значения и формат ошибок. Приведение строки к числу не заменяет проверку смысла значения. Сумму платежа сопоставляем с ожидаемым документом и валютой. Подпись уведомления проверяется отдельно; в браузерной демонстрации статус доверия условный и не является реализацией криптографической защиты.
Проверка на проекте
Неверная подпись не меняет баланс.
PHP / 03
Значения передаём через параметры подготовленных запросов, а не склеиваем со строкой SQL. Имена колонок и направление сортировки требуют отдельного списка разрешённых вариантов. Проверяем кодировку соединения, границы выборки и обработку ошибок. Подготовленный запрос решает конкретный класс проблем, но не заменяет права доступа и проверку принадлежности записи.
Проверка на проекте
Параметр запроса не меняет структуру SQL.
$stmt = $pdo->prepare(
'SELECT id, amount_minor FROM orders WHERE id = :id'
);
$stmt->execute(['id' => $validatedOrderId]);PHP / 04
Идентификатор события связываем с источником и сохраняем с ограничением уникальности. Проверка «уже было?» перед записью недостаточна при параллельных запросах. Изменение суммы и регистрация события выполняются согласованно в транзакции. Повтор возвращает понятный результат, а конфликт содержимого с тем же ключом требует отдельной обработки.
Проверка на проекте
Два одинаковых события учитываются один раз.
PHP / 05
Загруженный файл не должен получать право выполняться как PHP. Ограничиваем допустимые типы, размеры и место хранения. Конфигурация подключения и ключи интеграций не выводятся в ответах и журналах. Публичный каталог отделяем от служебных файлов. Права файловой системы и пользователя процесса учитываем при настройке окружения.
Проверка на проекте
Загруженный файл не выполняется сервером.
PHP / 06
Пользователь получает безопасное сообщение, а оператор — идентификатор для поиска подробностей в журнале. Не показываем трассировку и секретные параметры на публичной странице. Различаем ожидаемую ошибку данных и сбой инфраструктуры. Для внешнего вызова задаём таймаут и осмысленную стратегию повтора, чтобы зависший сервис не занимал все процессы приложения.
Проверка на проекте
Публичная ошибка не раскрывает трассировку.
PHP / 07
Фиксируем зависимости проекта и проверяем совместимость с выбранной версией PHP. Расширения, лимиты памяти и настройки процессов документируем вместе с кодом. Долгие задачи отделяем от обычного HTTP-запроса, если это оправдано процессом. Установка новой версии интерпретатора проходит проверку на копии, включая предупреждения совместимости.
Проверка на проекте
Обновление PHP проверено до production.
PHP / 08
Отправляем одинаковое событие повторно, меняем его сумму, имитируем сбой базы и проверяем восстановление. Тестируем параллельные запросы там, где важна уникальность. Передаём описание входных контрактов, коды ошибок и порядок выпуска. Поддержка включает обновления зависимостей и наблюдение за ошибками, а не только доступность главной страницы.
Проверка на проекте
Сбой записи не оставляет частичный платёж.
FAQ
Нет. Пример показывает проектируемый сценарий для PHP. Рабочую систему разрабатываем под ваши требования, данные и интеграции.
Сначала изучаем интерфейсы обмена, владельцев данных и ограничения. Результатом может стать интеграция, поэтапная миграция или замена только отдельного компонента.
Согласованный комплект включает дизайн, исходный код, требования к окружению и инструкции по эксплуатации. Состав работ, права и сопровождение фиксируем в договоре.
Расскажите о процессе, аудитории и существующих системах. Определим интерфейс, технические границы и этапы разработки.
Заявка отправлена. Мы свяжемся с вами, чтобы обсудить проект.