Каталог уже умеет принимать книги, проверять данные, сохранять их в базе и показывать список. Перед публикацией проверьте не только PHP-код: важны версия интерпретатора, публичная папка, права доступа, настройки ошибок, резервные копии и воспроизводимая установка зависимостей.
Используйте поддерживаемую версию PHP
На 24 октября 2026 года актуальный стабильный патч — PHP 8.5.12. Он вышел 21 октября с исправлениями двух критических уязвимостей удалённого выполнения кода. Для поддерживаемых веток также опубликованы версии 8.4.27, 8.3.36 и 8.2.35 с исправлениями. Обновите не только локальный PHP, но и ту версию, которая обрабатывает веб-запросы. Официальный PHP-сайт публикует предупреждение и исправленные версии.
Уточните у хостинга или системного администратора, какой PHP работает на сайте, а затем проверьте версию через панель и логи. PHP в терминале не всегда совпадает с версией PHP-FPM или Apache.
Отдавайте из веб-корня только public
Настройте корень сайта веб-сервера на каталог public/. В корне проекта остаются src/, vendor/, storage/, конфигурация и миграции — посетитель не должен открывать их по прямому URL. Убедитесь, что сервер не показывает листинг каталогов и исходный PHP-код.
Устанавливайте зафиксированные зависимости
В процессе выкладки используйте сохранённый composer.lock:
composer install --no-dev --optimize-autoloader
Команда устанавливает зафиксированные версии библиотек, пропускает инструменты разработки и оптимизирует автозагрузчик. Рабочая среда не должна рассчитывать на ручное копирование папки vendor/.
Настройки держите вне исходников
Путь к базе и режим приложения задавайте конфигурацией окружения, а не строками в репозитории. Читайте значения через getenv() и проверяйте наличие обязательных настроек при запуске. Не отправляйте пароли в Git и не показывайте их в сообщениях об ошибках.
В боевом окружении отключите показ подробных ошибок посетителю и включите журналирование. Технические детали направляйте в закрытые логи; пользователю показывайте короткое сообщение без трассировки стека.
Резервная копия и права доступа
- Создайте резервную копию базы до миграций и убедитесь, что её можно восстановить.
- Разрешите приложению писать только в нужное хранилище и каталоги кэша.
- Оставьте исходный код и конфигурацию доступными для чтения, но без записи веб-процессом без необходимости.
- Проверьте журналы после запуска новой версии.
- Проверьте добавление книги, список и отказ на некорректные данные.
Не публикуйте встроенный сервер PHP
Команда php -S 127.0.0.1:8000 предназначена для локальной разработки и демонстраций. Документация PHP прямо указывает, что встроенный сервер не является полноценным сервером и не предназначен для публичной сети. Для сайта используйте настроенный веб-сервер или хостинг с поддерживаемым PHP.
Маршрут обучения пройден
Мы прошли путь от php -v до небольшого приложения с типизированной моделью, Composer, проверкой ввода, формами, базой и тестами. Главный навык — не запомнить все функции, а разложить задачу на границы: входные данные, правила, хранение и вывод.
Выберите следующую задачу для каталога: сортировку по автору, редактирование записи или экспорт списка. Сначала сформулируйте поведение и проверку, затем подберите нужный инструмент PHP.
Навигация по курсу
Часть 16 из 16.
← Часть 15: Тестирование PHP: первые тесты PHPUnit
0
11