Переход к официальным ресурсам:      Codeigniter4 / Документация / Github / Форум / CodeIgniter3
Привет! В настоящий момент я временно прекратил перевод документации по причине того, что она она содержит целый ряд неточностей, а также еще дорабатывается со стороны разработчиков. Если ты заинтересован в изучении фреймворка CodeIgniter 4, то приглашаю тебя на свой канал на YouTube (Перейти на канал), где я более подробно выкладываю занятия по данному фреймворку.


Структура директорий Codeigniter 4

Для того, чтобы начать разработку и исключить потенциальные проблемы при реализации своего проекта на Codeigniter 4, тебе нужно четко понимать, какую структуру фреймворк имеет по умолчанию, и что ты можешь в нём изменять без ущерба работе. Помимо этого, зная структуру фреймворка, ты сможешь наиболее эффективно задействовать все его инструменты, которые помогут реализовать твой проект.

Директории по умолчанию

После свежей установки форемворка ты получаешь в свое распоряжение шесть основных директорий: /app, /system, /public, /writable, /tests и, возможно, /docs. Каждая из этих директорий имеет своё предназначение, и мы переходим непосредственно к знакомству с ними.

Директория /app

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

 app
  |- Config
  |- Controllers
  |- Database
  |- Filters
  |- Helpers
  |- Language
  |- Libraries
  |- Models
  |- ThirdParty
  |- Views

Разберемся по порядку с каждой из них:

  • /Config - директория, в которой содержатся все основные файлы, которые всесторонне задают конфигурацию работы твоего проекта. Здесь ты можешь настроить буквально всё! Параметры работы с почтой, пути к файлам и директориям, маршрутизацию, автозагрузку классов, работу с шифрованием, параметры соединения с базой данных и т.д.
  • /Controllers - Основное место, где будут создаваться и храниться все твои контроллеры, определяющие поведение твоего приложения, в зависимости от действий пользователей.
  • /Database - директория, где будут хранится все файлы миграций баз данных и "сиды" - файлы с начальными данными, которыми, например, ты захочешь наполнять таблицы при разработке и тестировании своего проекта.
  • /Filters - Могут быть ситуации, когда тебе необходимо перед или сразу после вызова контроллера выполнить то или иное действие. Так вот эта директория как раз и предназначена для создания и хранения в ней всех классов для таких ситуаций.
  • /Helpers - директория, в которой ты можешь в неограниченных объемах создавать свои собственные Хелперы - небольшие файлы, содержащие узкоспециализированные функции, необходимые для работы твоего приложения.
  • /Language - если ты планируешь реализовать в своем проекте мультиязычную поддержку, тогда эта директория будет лучшим местом для хранения всех языковых файлов и инструментов, обеспечивающих поддержку нескольких языков для твоего приложения.
  • /Libraries - директория, в которой ты можешь просто хранить классы или библиотеки, которые не попадают под какие-либо конкретные категории.
  • /Models - директория, в которой будут создаваться и храниться все классы, определяющие работу по взаимодействию твоего приложения с рабочей базой данных.
  • /ThirdParty - не хватает возможностей фреймворка и решил подключить готовые сторонние библиотеки? Эта директория будет лучшим местом для такой задачи.
  • /Views - здесь проектируются и хранятся все шаблоны визуального оформления твоего приложения. Всё то, что будут видеть пользователи в окне своего браузера.
 

Поскольку директория /app уже находится в пространстве имён, ты можешь изменять структуру этого каталога в соответствии с твоими потребностями. Ты можешь добавлять новые директории или переименовывать имеющиеся. Единственное помни, что если ты переименуешь директорию /Controllers, тогда тебе необходимо будет внести соответствующие корректировки в файл /app/Config/Routes.php, чтобы восстановить работу автоматической маршрутизации.

По умолчанию, все файлы в этой директории находятся в пространстве имён App, но если ты хочешь переименовать это пространство, тогда укажи новое пространство имен в соответствующей константе в файле /app/Config/Constants.php:

defined('APP_NAMESPACE') || define('APP_NAMESPACE', 'App');
 

Директория /system

Эта директория является ядром или "сердцем" фреймворка. Она никогда не должна подвергаться каким-либо изменениям с твоей стороны. Для этого существует директория /app, о которой мы говорили выше. Если тебе требуется добавить новую функциональность или расширить существующие возможности фреймворка Codeigniter 4, то все изменения ты обязательно должен делать только в директории /app.

Все файлы директории /system находятся в пространстве имён CodeIgniter.

Директория /public

Новая директория, которая была добавлена в Codeigniter 4. Теперь именно эта директория должна быть указана в настройках твоего web-сервера, как корневая. Здесь находятся два самых важных файла .htaccess и index.php, который является первой точкой входа в работу твоего приложения. Помимо этого, в директории /public, ты можешь размещать все общедоступные части твоего приложения. Например, здесь ты можешь создать папку сss для хранения таблиц стилей, images для хранения изображений, js для хранения файлов JavaScript, uploads для хранения общедоступных файлов для загрузки и т.д.

Еще раз повторюсь. Вне зависимости от того, какая из директорий на твоем сервере была установлена как корневая, после установки фреймворка Codeigniter 4 ты должен перенастроить конфигурацию своего web-сервера так, чтобы именно папка /public была корнем твоего проекта!

Директория /writable

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

Директория /tests

Эта директория предназначена для хранения тестовых файлов. Поддиректория _support содержит различные фиктивные классы и другие утилиты, которые ты можешь использовать при проведении тестов над своим приложением. Эта директория должна быть использована только на сервере разработки и её не стоит переносить на рабочий, публичный сервер.

Директория /docs

Директория, которая совершенно не участвует в работе и разработке твоего проекта. Она просто содержит локальную копию официального "Руководства разработчика".

Изменение путей размещения директорий

Если ты решил перенести в другое место или переименовать какие-либо из директорий, тогда обязательно внеси соответствующие корректировки в файл app/Config/Paths.php.


Комментарии к разделу:

Пока ещё никто не оставил своего комментария. Оставить свой!

Добавить комментарий к статье:


Ваше имя:
Ваша почта:

  Закрыть