Структура фреймворка
Создание Структуры Нашего Фреймворка: Погружаемся в Код
В данном посте мы продолжаем разработку нашего фреймворка на 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.
Эта папка обеспечивает удобство в управлении серверной средой и хранении всех настроек в одном месте.
Таким образом, мы шаг за шагом создали структуру нашего будущего фреймворка. Такие шаги — это основа, на которой будет строиться наш проект, позволяя нам создавать эффективные и безопасные веб-решения. На данном фреймворке котором мы с вами будет создовать работает наш сайт! В следующем уроке мы углубимся в детали реализации и начнем заполнять наш фреймворк функционалом!
Готовы продолжить? Давайте сделаем это вместе!
Добавить комментарий или задать вопрос ツ
Комментариев нет