Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Структура проекта

Прежде чем писать код, полезно понять, где что лежит. В проекте Laminas у каждой папки одна задача, и новые файлы почти всегда создают в папке module.

Папки в корне проекта

Папка или файлЧто в ней
configНастройки приложения и список модулей
config/autoloadОбщие настройки: global.php и local.php
moduleВаш код, разложенный по модулям
publicКорень сайта: index.php, стили, скрипты, картинки
dataКеш и другие файлы, которые создаёт приложение
vendorПакеты, скачанные Composer; руками не изменяют
composer.jsonСписок пакетов и правила загрузки классов

Точка входа

Любой запрос к сайту попадает в файл public/index.php. Он подключает загрузчик классов Composer, читает настройки и запускает приложение:

// public/index.php (главные строки)
use Laminas\Mvc\Application;
 
chdir(dirname(__DIR__));
 
include __DIR__ . '/../vendor/autoload.php';
 
$appConfig = require __DIR__ . '/../config/application.config.php';
 
Application::init($appConfig)->run();

Строка chdir() делает текущей папкой корень проекта, поэтому пути в настройках пишут от корня: data/cache, config/autoload. Менять этот файл обычно не нужно.

Папка config

ФайлДля чего
application.config.phpНастройки запуска: откуда брать модули и настройки, включён ли кеш
modules.config.phpСписок подключённых модулей
autoload/global.phpНастройки, общие для всех компьютеров
autoload/local.phpПароли и ключи конкретного компьютера

Модуль Application

Модуль — папка с кодом одной части сайта. В заготовке есть один модуль:

module/Application/
├── config/
│   └── module.config.php
├── src/
│   ├── Controller/
│   │   └── IndexController.php
│   └── Module.php
└── view/
    ├── application/index/index.phtml
    ├── error/404.phtml
    ├── error/index.phtml
    └── layout/layout.phtml

В config лежат настройки модуля, в src — классы PHP, в view — шаблоны страниц (файлы с расширением .phtml). Файл layout/layout.phtml — общая рамка всех страниц, а error/404.phtml — страница «не найдено».

Папка public

Только эта папка видна из браузера. Файл public/css/style.css открывается по адресу /css/style.css. Всё остальное — код, настройки, пароли — лежит уровнем выше и по ссылке недоступно.

Частая ошибка

Свои классы и шаблоны не кладут в vendor и не правят файлы внутри этой папки: при следующем composer install или composer update изменения пропадут. Ваш код живёт в module, настройки — в config, а vendor целиком принадлежит Composer.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.