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

Понимание структуры файлов в CodeIgniter необходим перед созданием любого реального приложения. Предсказуемая структура помогает быстро находить контроллеры, модели и представления, отлаживать проблемы маршрутизации и быстрее вводить в курс дела новых членов команды. В этом руководстве рассматривается классический подход. CodeСтруктура Igniter 3, которая до сих пор широко используется, а также разъясняет ключевые различия, с которыми вы столкнетесь. CodeВ Igniter 4.x введены отдельные папки верхнего уровня: app/, public/ и writable/.
Что CodeСтруктура файлов и каталогов Igniter?
CodeСтруктура файлов Igniter — это стандартное расположение папок и PHP-файлов, которое фреймворк предоставляет после загрузки или установки. Она отделяет логику вашего приложения от ядра фреймворка, обеспечивает изоляцию зависимостей Composer и предоставляет единую точку входа через index.php. На следующем изображении показана структура файлов Igniter. CodeВоспламенитель:
Вот упрощенная структура каталогов для новой системы. 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/. Придерживайтесь этой дисциплины, и ваш проект останется простым в навигации даже по мере его роста.
