Структура фреймворка

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

Создание Структуры Нашего Фреймворка: Погружаемся в Код

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

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

Шаг 1: Настройка проекта. Я буду работать версии PHP 8.3

Для начала вам нужно открыть папку на сервере. Если вы используете OSPanel, отправляйтесь в папку home. Для пользователей XAMPP вам нужно будет зайти в папку htdocs. Давайте создадим новую папку для нашего проекта. Я назову её new nikolayogreba.loc

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

Шаг 2: Импортирование проекта в PHPStorm

Следующий шаг — добавить наш новый проект в PHPStorm или в другой выбранный редактор. Открыв редактор, просто выберите опцию «Открыть» и добавьте созданный проект. Не бойтесь, он пока пуст. Поскольку мы будем использовать PHP 8, важно убедиться, что именно эта версия настроена в редакторе. Это займет всего пару минут — просто перейдите в настройки (Ctrl + Alt + S) и выберите нужную версию PHP.

Шаг 3: Создание каркаса приложения

Теперь мы входим в настоящую работу! Начнем с создания папки app. Это будет основная папка вашего приложения, где будут храниться все важные элементы, соответствующие паттерну MVC (Модель-Представление-Контроллер). Этот паттерн позволяет организовать код логично и эффективно, избегая сумбура, когда все находилось в одном файле.

Что же такое MVC?

  • Модель: Обрабатывает данные, взаимодействует с базой данных, а значит, отвечает за сохранение и получение информации.

  • Представление: Это то, что видит пользователь. Здесь расположены шаблоны и HTML-код, который выводится в браузере.

  • Контроллер: Связующее звено между моделью и представлением. Он обрабатывает запросы пользователей, запрашивает необходимые данные и передает их в нужное представление.

Кроме того, у нас будет важный компонент — языки (Languages). Поскольку наш проект будет мульти-язычным, это добавляет дополнительный уровень гибкости.

Шаг 4: Создание подкаталогов

Теперь давайте создадим подкаталоги в папке app:

  • controllers/

    • Описание: Данная папка содержит контроллеры, которые управляют логикой приложения. Контроллеры обрабатывают входящие запросы, взаимодействуют с моделями и передают данные в представления. Каждый контроллер отвечает за определенный функционал или ресурс приложения.
  • helpers/

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

    • Описание: Здесь находятся файлы локализации, которые содержат переводы текстов и сообщений для разных языков. Это позволяет легко адаптировать приложение для пользователей из разных стран и культур, обеспечивая поддержку многоязычности.
  • models/

    • Описание: Папка для моделей, которые представляют данные и бизнес-логику приложения. Модели взаимодействуют с базой данных, выполняют операции CRUD (создание, чтение, обновление и удаление) и обеспечивают целостность данных.
  • scripts/

    • Описание: Здесь находятся скрипты для обработки AJAX-запросов. Эти скрипты обеспечивают взаимодействие между клиентской и серверной частями приложения, позволяя динамически загружать и обновлять данные без перезагрузки страницы.
  • views/

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

    • Описание: Здесь располагаются многоразовые компоненты интерфейса, такие как шапки, боковые меню, виджеты и другие элементы пользовательского интерфейса. Использование виджетов позволяет повысить модульность и переиспользуемость кода.

Виджеты помогут нам повторно использовать код, что существенно упростит процесс разработки.

Шаг 5: Настройка конфигураций и публичной папки

Продолжая, создайте папку config, где впоследствии будут размещены все конфигурационные файлы. Следующий важный шаг — это создание публичной папки (public). Именно сюда будут поступать все запросы пользователей. Туда мы поместим файл index.php, называемый фронт-контроллером. Фронт-контроллер — это первый элемент, который будет обрабатывать все запросы, поступающие к вашему приложению.

В папке public разместим все файлы, которые должны быть доступны пользователю: стили, изображения, скрипты и прочее. Это обеспечит безопасность, скрывая внутренние ресурсы вашего приложения от несанкционированного доступа.

Шаг 6: Временные файлы

Наконец, создайте папку tmp, которая будет использоваться для хранения временных файлов. Здесь мы будем размещать кэш, логи ошибок и другие вспомогательные данные, которые могут пригодиться в процессе тестирования и оптимизации производительности.


Так как я буду использовать Open Server мне необходимо создать .osp в нем файл project c PHP-8.3

Папка .osp в использовании Open Server Panel (OSP) предназначена для хранения настроек и конфигурации самого Open Server. В ней содержатся важные файлы, такие как:

  • Конфигурационные файлы: Настройки серверов, версий PHP, базы данных и другие параметры, необходимые для работы системы.
  • Логи: Записи о работе серверов и возможных ошибках, что помогает в диагностике и отладке.
  • Плагины и расширения: Дополнительные модули, которые можно использовать для расширения функционала Open Server.

 

Эта папка обеспечивает удобство в управлении серверной средой и хранении всех настроек в одном месте.

Таким образом, мы шаг за шагом создали структуру нашего будущего фреймворка. Такие шаги — это основа, на которой будет строиться наш проект, позволяя нам создавать эффективные и безопасные веб-решения. На данном фреймворке котором мы с вами будет создовать работает наш сайт! В следующем уроке мы углубимся в детали реализации и начнем заполнять наш фреймворк функционалом!

Готовы продолжить? Давайте сделаем это вместе!