Конфигурация фреймворка

Andre Kowalsy
150 раз
3 мин чтения
Опубликовано: 20-07-2025
Обновлено: 15-02-2026
Категории: Пишем свою CMS

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

На текущий момент у нас есть такая структура. Повторюсь, здесь появится еще папка vendor, где будет располагаться ядро фреймворка и дополнительные зависимости для нашего проекта.

Продолжаем создание собственного фреймворка

Папки и классы

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

Все это должно работать вместе, не конфликтовать и автоматически загружаться. Для этого нам потребуется автозагрузчик классов.

PSR-4 и Composer

Мы будем использовать автозагрузку по стандарту PSR-4. Для этого создадим файл Composer.json

Пример файла Composer.json:

``json { "autoload": { "psr-4": { "blog\\": "vendor/blog/" } } }

Будьте аккуратны с синтаксисом данного файла, так как он чувствителен к возможным ошибкам.

### Установка Composer

Если вы используете OSPanel, откройте консоль и перейдите в папку вашего проекта:

bash cd home/nikolayogreba.loc

Затем выполните команду:

bash composer install `` ### Структура и автозагрузка После установки Composer у вас должна появиться папка **vendor**, где можно создать папку **blog** для классов ядра фреймворка. #### Подключение автозагрузчика В конфигурационном файле **init.php** (в папке **config**) подключите автозагрузчик:

require_once __DIR__ .'/../vendor/autoload.php';

### Константы конфигурации Объявим ряд констант, например: - **DEBUG**: для режима разработки. - **ROOT**: для корня приложения. - **APP**: для папки приложения.

  1. DEBUG: Включает режим отладки (1).
  2. ROOT: Указывает на корневую директорию проекта.
  3. WWW: Путь к публичной папке, доступной через веб.
  4. APP: Директория с основной логикой приложения.
  5. IMAGES: Путь к папке с изображениями.
  6. DIR: Директория для файлов представлений.
  7. CORE: Путь к основной библиотеке проекта.
  8. HELPERS: Папка с вспомогательными функциями.
  9. CACHE: Директория для кэша.
  10. CONF: Путь к конфигурационным файлам.
  11. LOGS: Директория для логов приложения.
  12. CONFIG: Дублирующий путь к конфигурационным файлам.
  13. LAYOUT: Название основного шаблона.
  14. PATH: Полный URL-адрес с учетом протокола (HTTP/HTTPS).
  15. ADMIN и ADMIN_PATH: Путевые адреса к административной панели и ее ресурсам.
  16. NO_IMAGE: Путь к изображению по умолчанию, если отсутствует загруженное изображение.
  17. Автозагрузка: Подключает файл автозагрузки Composer для работы с зависимостями.

### ⚙️ Проверка версии PHP Для проверки, что используется версия PHP 8 и выше, добавьте следующий код в папку public с index.php

if (PHP_MAJOR_VERSION < 8) {
    die('Необходима версия PHP больше либо равна 8.');
}

И подключаем наш только что созданный файл init.php

require_once dirname(__DIR__) .'/config/init.php';

### Завершение урока На этом урок заканчивается. Мы настроили конфигурацию приложения и проверку версии PHP. В следующем уроке продолжим работу над функционалом.