EN
← Все технологии

PHP · BIG FISH

PHP.
Правила бизнеса.
На стороне сервера.

Разрабатываем серверную часть сайтов и сервисов: обработку запросов, интеграции, документы и работу с данными. Выбираем архитектуру под задачу и поддерживаемость проекта.

BIG FISH / PHP
01Входящий запрос
02Проверка данных
03Транзакция и уникальность
04Подтверждённый результат
Дизайн × технология × ваш процесс

ВОЗМОЖНОСТИ ПРОДУКТА

Технология становится
рабочим инструментом.

1

Серверная логика

Обработка запросов и выполнение правил, которым нельзя доверять браузеру.

2

Интеграции

Приём событий, проверка данных и согласованная запись результата.

3

Документы и данные

Подготовка выгрузок и отчётов с контролем доступа и ошибок.

ЖИВОЙ ПРИМЕР

Проверьте сценарий.
Посмотрите результат.

Обработчик уведомлений об оплате: событие проверяется и применяется один раз. Повтор с тем же идентификатором не увеличивает сумму повторно.

Учебный пример с условными данными. Действия остаются в браузере. Это модель сценария, а не подключённая CMS, сервер или база данных.

PHP

PHPРезультат сценария
Учебный пример готов к запуску.

АРХИТЕКТУРА СЦЕНАРИЯ

У каждого шага
своя ответственность.

01

Входящий запрос

02

Проверка данных

03

Транзакция и уникальность

04

Подтверждённый результат

Что проверяем перед запуском
СлойРезультат
ИнтерфейсПонятны ввод, ограничения, загрузка и ошибки. Доступно управление клавиатурой.
ДанныеУ значений есть владелец, формат и правила актуальности.
ВыпускПроверены ключевые сценарии, резервирование и восстановление.
Иллюстрация дизайна цифрового продукта на PHP
Иллюстрация цифрового сервиса

BIG FISH · PHP

Серверная логика становится понятной.

Заказная разработка на PHP требует ясного интерфейса для действий, которые выполняются на сервере. После отправки формы пользователь должен понимать, принят ли запрос, какие данные сохранены и что произойдёт дальше.

В веб-сервисах и личных кабинетах на PHP показываем историю операций, подтверждения и причины отказа доступным языком. Права доступа и проверки остаются на сервере, а интерфейс объясняет их результат без технических сообщений.

ПРАКТИЧЕСКОЕ РУКОВОДСТВО

Как устроен продукт
на PHP.

Архитектура, ограничения и проверяемые сценарии. Конкретную конфигурацию согласуем по требованиям проекта.

PHP / 01

Границы приложения

PHP — язык, а не готовая архитектура продукта. Приложение может использовать фреймворк или набор библиотек, но структура должна оставаться понятной: входные запросы, бизнес-правила, данные и внешние системы. Начинаем с ответственности модулей и сценариев ошибок. Не смешиваем генерацию HTML, отправку платежа и изменение базы в одном обработчике.

Проверка на проекте
Бизнес-правило проверяется вне HTML-шаблона.

PHP / 02

Контракт запроса

Описываем обязательные поля, типы, допустимые значения и формат ошибок. Приведение строки к числу не заменяет проверку смысла значения. Сумму платежа сопоставляем с ожидаемым документом и валютой. Подпись уведомления проверяется отдельно; в браузерной демонстрации статус доверия условный и не является реализацией криптографической защиты.

Проверка на проекте
Неверная подпись не меняет баланс.

PHP / 03

Работа с SQL

Значения передаём через параметры подготовленных запросов, а не склеиваем со строкой 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. Рабочую систему разрабатываем под ваши требования, данные и интеграции.

Можно сохранить существующие системы?

Сначала изучаем интерфейсы обмена, владельцев данных и ограничения. Результатом может стать интеграция, поэтапная миграция или замена только отдельного компонента.

Что получим при передаче проекта?

Согласованный комплект включает дизайн, исходный код, требования к окружению и инструкции по эксплуатации. Состав работ, права и сопровождение фиксируем в договоре.

Спроектируем ваш продукт

Расскажите о процессе, аудитории и существующих системах. Определим интерфейс, технические границы и этапы разработки.