CodeСтруктура папок, файлов и каталогов Igniter

⚡ Умное резюме

CodeIgniter организует PHP-проект в предсказуемые папки для логики приложения, системных файлов фреймворка, пакетов поставщиков Composer и единственного скрипта, что позволяет начинающим быстро находить код, а разработчикам среднего уровня — масштабировать чистую MVC-структуру.

  • 📁 Папка приложения: Содержит ваши контроллеры, модели, представления, конфигурацию, кэш, вспомогательные функции, хуки, языковые компоненты, библиотеки, логи и сторонние пакеты.
  • 🧩 Системная папка: Здесь хранятся ядро ​​фреймворка, драйверы баз данных, шрифты, вспомогательные функции, языковые и встроенные библиотеки; не редактируйте эти файлы напрямую.
  • ⚙️ Точка входа: Корневой файл index.php запускает фреймворк, задает пути и направляет каждый HTTP-запрос через фронт-контроллер.
  • Отличия версий: CodeIgniter 3 использует application/ и system/, в то время как CodeВ Igniter 4 введены папки app/, public/ и writable/ для более строгого разделения.
  • 🧪 Руководство поставщика и руководство пользователя: Vendor хранит пакеты Composer, которые вы развертываете, а user_guide — это локальная документация, которую следует исключить из использования на производственных серверах.

CodeПапка Igniter

Понимание структуры файлов в CodeIgniter необходим перед созданием любого реального приложения. Предсказуемая структура помогает быстро находить контроллеры, модели и представления, отлаживать проблемы маршрутизации и быстрее вводить в курс дела новых членов команды. В этом руководстве рассматривается классический подход. CodeСтруктура Igniter 3, которая до сих пор широко используется, а также разъясняет ключевые различия, с которыми вы столкнетесь. CodeВ Igniter 4.x введены отдельные папки верхнего уровня: app/, public/ и writable/.

Что CodeСтруктура файлов и каталогов Igniter?

CodeСтруктура файлов Igniter — это стандартное расположение папок и PHP-файлов, которое фреймворк предоставляет после загрузки или установки. Она отделяет логику вашего приложения от ядра фреймворка, обеспечивает изоляцию зависимостей Composer и предоставляет единую точку входа через index.php. На следующем изображении показана структура файлов Igniter. CodeВоспламенитель:

CodeСтруктура файлов/папок/каталогов Igniter
CodeСтруктура файлов/папок/каталогов Igniter

Вот упрощенная структура каталогов для новой системы. CodeУстановка Igniter 3:

// CodeIgniter 3 root layout
project-root/
├── application/
├── system/
├── user_guide/
├── vendor/
├── composer.json
├── composer.lock
└── index.php

Объяснение работы папок верхнего уровня

Теперь давайте рассмотрим указанные выше файлы. CodeСтруктура воспламенителя:

  • приложению – Это директория, в которой будет храниться логика вашего приложения. Весь код вашего приложения будет находиться в этой директории.
  • система – эта папка содержит файлы ядра платформы. Не рекомендуется вносить изменения в этот каталог или помещать в него собственный код приложения.
  • гид пользователя – в этом каталоге находится руководство пользователя для Codeвоспламенитель.
  • продавец – В этой директории находится исходный код пакетов Composer. Другие файлы, относящиеся к этой директории, — это composer.json и composer.lock.
  • index.php – это точка входа в приложение.

CodeПодкаталоги приложения Igniter

Теперь давайте подробнее рассмотрим каталоги. Как уже упоминалось, каталог приложения содержит код вашего проекта. В этом разделе мы рассмотрим внутренние подкаталоги в CodeСтруктура каталогов Igniter:

  • кэш – хранит кэшированные файлы, созданные библиотеками кэширования вывода и базы данных.
  • конфиг – хранит конфигурационные файлы, такие как database.php, routes.php и autoload.php.
  • Контроллеры – Здесь определены все контроллеры приложений и сопоставлены. URL сегменты к действиям.
  • ядро – содержит пользовательские основные классы, расширяющие системные файлы. Например, если вы создадите базовый контроллер, который должны расширять другие контроллеры, вам следует поместить его в этот каталог.
  • помощники – этот каталог CodeСтруктура папок Igniter используется для пользовательских вспомогательных функций.
  • крючки – используется для пользовательских хуков в структуре папок CI, которые срабатывают во время цикла выполнения фреймворка.
  • язык – используется для хранения языковых файлов для приложений, использующих более одного языка.
  • библиотеки – используется для хранения библиотек, созданных пользователем.
  • бревна – В этом каталоге хранятся файлы журналов приложений.
  • ухода – Все модели приложений должны быть определены в этом каталоге.
  • третье лицо – Это используется для пользовательских пакетов, созданных вами или другими разработчиками.
  • Просмотры – Представления приложения размещаются в этом каталоге.

Вот пример структуры подкаталогов приложения:

// application/ subdirectories
application/
├── cache/
├── config/
├── controllers/
├── core/
├── helpers/
├── hooks/
├── language/
├── libraries/
├── logs/
├── models/
├── third_party/
└── views/

CodeПодкаталоги системы зажигания

Теперь давайте рассмотрим системные подкаталоги в файловой структуре CI. Помните, что именно здесь находится исходный код фреймворка, поэтому не вносите никаких изменений в файлы в этом каталоге.

  • ядро - это как сердце CodeФреймворк IgniterЗдесь находятся все основные файлы, составляющие основу фреймворка. Если вы хотите расширить функциональность основного файла, вам необходимо создать собственный основной файл в каталоге приложения. После этого вы можете переопределить или добавить новое поведение по своему желанию. Никогда не следует вносить изменения непосредственно в этот файл.
  • база данных – Здесь предоставляются драйверы базы данных, кэш и другие файлы, необходимые для работы с базой данных.
  • шрифты – Как следует из названия, этот каталог содержит шрифты и информацию, относящуюся к шрифтам.
  • помощники – этот каталог в CodeВ папке структуры Igniter содержатся вспомогательные функции, которые предоставляются по умолчанию.
  • язык – содержит языковые файлы, используемые фреймворком.
  • библиотеки – содержит исходные файлы для различных библиотек, входящих в состав пакета. CodeЗажигалка готова к использованию сразу после распаковки.

Структура системных папок выглядит следующим образом:

// system/ subdirectories
system/
├── core/
├── database/
├── fonts/
├── helpers/
├── language/
└── libraries/

CodeКаталог руководства пользователя Igniter

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

CodeКаталог поставщиков воспламенителей

В этой директории находятся исходные файлы пакетов, которые вы устанавливаете через Composer. Файлы в этой директории следует оставить как есть и не вносить в них никаких изменений. В отличие от директории user_guide, эту директорию следует загрузить, если вы используете пакеты Composer в своем приложении.

Файл index.php

Файл index.php находится в CodeФайловая структура Igniter содержит код инициализации, определяющий окружение, пути и отчеты об ошибках, прежде чем передать управление фреймворку. Этот файл находится в корневом каталоге и выступает в качестве фронт-контроллера для каждого входящего HTTP-запроса.

Как CodeIgniter 4 меняет структуру

CodeВ Igniter 4.x была изменена структура интерфейса для повышения безопасности и улучшения автозагрузки PSR-4. Вместо одной папки приложения теперь отображаются три папки верхнего уровня, которые более строго разделяют задачи:

  • приложение/ – эквивалент старой папки application/, содержащей контроллеры, модели, представления, конфигурацию, фильтры и библиотеки.
  • общественные / – единственная папка, доступная через веб-браузер, содержащая файл index.php, а также ваши CSS, JS и графические ресурсы.
  • записываемый/ – хранит кэш, журналы, сессии и данные о загрузках, которые фреймворк должен записывать во время выполнения.
  • система / – по-прежнему содержит ядро ​​фреймворка, находящееся в пространстве имен под CodeЗажигатель\.
  • продавец / – пакеты Composer, идентичные по своей роли пакетам CI 3.
// CodeIgniter 4 root layout
project-root/
├── app/
├── public/
├── writable/
├── system/
├── vendor/
├── tests/
├── composer.json
├── env
└── spark

Если вы сегодня начинаете новый проект, CodeРекомендуемая версия — Igniter 4. Если вы поддерживаете более старую версию кода, описанная выше структура CI 3 будет соответствовать тому, что вы видите на диске.

Работа с CodeСтруктура воспламенителя в повседневной работе

Как только вы узнаете, где находится каждая папка, выполнение стандартных задач станет простым. Создайте новый контроллер в папке application/controllers/ (или app/Controllers/ в CI 4), сопоставьте его с маршрутом в файле config/routes.php, создайте модель в папке models/ и отобразите вывод из файла представления в папке views/. Храните конфигурацию в папке config/, размещайте многократно используемый код в папках helpers/ или libraries/, а Composer управляйте всем в папке vendor/. Придерживайтесь этой дисциплины, и ваш проект останется простым в навигации даже по мере его роста.

Часто задаваемые вопросы (FAQ)

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

In CodeВ Igniter 4 новые контроллеры размещаются в папке app/Controllers/ с использованием пространств имен PSR-4. Имя файла должно совпадать с именем класса, затем необходимо зарегистрировать маршрут в файле app/Config/Routes.php, чтобы фреймворк мог направлять к нему запросы.

Нет. Папка user_guide содержит только локальную документацию. Исключите её из развертывания в производственной среде, чтобы уменьшить занимаемое пространство и избежать доступа к справочным материалам фреймворка на рабочем сервере. Папки vendor и system, напротив, должны быть развернуты отдельно.

Файл index.php является фронт-контроллером. Он устанавливает окружение, определяет константы путей и загружает загрузчик фреймворка, так что каждый входящий запрос направляется через него. CodeЗапустите конвейер Ignitor перед тем, как он достигнет ваших контроллеров и представлений.

Да. Инструменты искусственного интеллекта, такие как GitHub Copilot, Cursor и Claude, могут размещать контроллеры, модели и представления в правильных папках, объяснять незнакомые файлы и отмечать неправильно расположенные классы. Они особенно полезны при переключении между различными компонентами. CodeЗажигалка 3 и CodeМакеты Igniter 4.

Искусственный интеллект-помощники объясняют, как контроллеры обрабатывают запросы, модели управляют данными, а представления отображают выходные данные, а затем генерируют соответствующие файлы в нужных папках. Они также могут проанализировать ваш код, предложить варианты рефакторинга и усилить разделение MVC по мере разработки реального проекта. CodeПроекты Igniter.

Подведем итог этой публикации следующим образом: