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

⚡ Розумний підсумок

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

  • 📁 Папка програми: Містить ваші контролери, моделі, представлення, конфігурацію, кеш, допоміжні функції, хуки, мову, бібліотеки, журнали та сторонні пакети.
  • 🧩 Системна папка: Зберігає ядро ​​фреймворку, драйвери бази даних, шрифти, допоміжні програми, мову та вбудовані бібліотеки; не редагуйте ці файли безпосередньо.
  • Точка входу: Кореневий файл index.php завантажує фреймворк, встановлює шляхи та маршрутизує кожен HTTP-запит через фронт-контролер.
  • Відмінності версій: CodeIgniter 3 використовує application/ та system/, тоді як CodeIgniter 4 додає папки app/, public/ та writable/ для чіткішого розділення.
  • 🧪 Постачальник та посібник користувача: Постачальник зберігає пакети композиторів, які ви розгортаєте, тоді як user_guide — це локальна документація, яку слід виключити з робочих серверів.

CodeПапка-запальник

Розуміння структури файлів у CodeIgniter є важливим інструментом перед створенням будь-якої реальної програми. Передбачуване розташування допомагає швидко знаходити контролери, моделі та представлення, налагоджувати проблеми з маршрутизацією та швидше залучати нових членів команди. Цей посібник охоплює класичні... CodeСтруктура Igniter 3, яка досі широко використовується, а також пояснює ключові відмінності, з якими ви зіткнетеся CodeIgniter 4.x, який представляє app/, public/ та writable/ як окремі папки верхнього рівня.

Що CodeСтруктура файлів та каталогів Igniter?

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

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

Ось спрощене дерево каталогів для нового CodeВстановлення запальника 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:

  • cache – зберігає кешовані файли, згенеровані бібліотеками кешування виводу та бази даних.
  • конфиг – зберігає файли конфігурації, такі як database.php, routes.php та autoload.php.
  • контролери – усі контролери застосунків визначені тут і відображаються URL сегменти до дій.
  • ядро – містить власні основні класи, що розширюють системні файли. Наприклад, якщо ви створюєте базовий контролер, який інші контролери повинні розширювати, ви розміщуєте його в цьому каталозі.
  • помічників – цей каталог CodeСтруктура папок Igniter використовується для допоміжних функцій, визначених користувачем.
  • гачки – використовується для користувацьких перехоплювачів у структурі папок CI, що спрацьовують під час циклу виконання фреймворку.
  • мова – використовується для зберігання мовних файлів для програм, які використовують більше однієї мови.
  • libraries – використовується для зберігання бібліотек, створених на замовлення.
  • logs – файли журналів програм зберігаються в цьому каталозі.
  • Моделі – усі моделі застосунків мають бути визначені в цьому каталозі.
  • третя_сторона – це використовується для користувацьких пакетів, створених вами або іншими розробниками.
  • думки – перегляди програм розміщуються в цьому каталозі.

Ось приклад дерева підкаталогів програми:

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

CodeПідкаталоги системи запалювання

Давайте тепер розглянемо системні підкаталоги у файловій структурі CI. Пам'ятайте, що саме там знаходиться вихідний код фреймворку, тому не вносьте жодних змін до файлів у цьому каталозі.

  • ядро – це як серце CodeФреймворк запалювачаУсі основні файли, що складають фреймворк, розташовані тут. Якщо ви хочете розширити функціональність основного файлу, вам потрібно створити власний основний файл у каталозі програми. Після цього ви можете змінити або додати нову поведінку на свій розсуд. Ніколи не вносьте зміни безпосередньо тут.
  • база даних – тут надаються драйвери бази даних, кеш та інші файли, необхідні для роботи з базою даних.
  • Шрифти – як випливає з назви, цей каталог містить шрифти та інформацію, що стосується шрифтів.
  • помічників – цей каталог у CodeПапка структури Igniter містить допоміжні функції, які постачаються з коробки.
  • мова – містить мовні файли, що використовуються фреймворком.
  • libraries – містить вихідні файли для різних бібліотек, що постачаються з 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-запиту.

Як CodeЗапалювач 4 змінює структуру

CodeУ Igniter 4.x було реорганізовано макет для покращення безпеки та автозавантаження PSR-4. Замість однієї папки програм тепер ви бачите три папки верхнього рівня, які чіткіше розділяють завдання:

  • додаток / – еквівалент старішої папки application/, що містить контролери, моделі, представлення, конфігурацію, фільтри та бібліотеки.
  • публічний/ – єдина папка, доступна для веб-перегляду, що містить index.php та ваші CSS, JS та зображення.
  • записуваний/ – зберігає кеш, журнали, сесії та завантаження, які фреймворк повинен записувати під час виконання.
  • система/ – досі містить ядро ​​фреймворку, простір імен під CodeЗапальник\.
  • постачальник / – пакети композиторів, ідентичні за роллю 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/. Дотримуйтесь цієї дисципліни, і ваш проект залишатиметься легким для навігації навіть по мірі його зростання.

Поширені запитання

Папка application містить код вашого проєкту, такий як контролери, моделі та представлення, і ви можете вільно його редагувати. Системна папка містить ядро ​​фреймворку, і вам ніколи не слід змінювати його файли, оскільки оновлення фреймворку перезапишуть їх.

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

Ні. Папка user_guide містить лише локальну документацію. Виключіть її з розгортання в робочому середовищі, щоб зменшити обсяг займаної інформації та уникнути розкриття довідкових матеріалів фреймворку на робочому сервері. Папки постачальника та системи, навпаки, мають бути розгорнуті.

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

Так. Інструменти штучного інтелекту, такі як GitHub Copilot, Cursor та Claude, можуть створювати каркас контролерів, моделей та представлень у правильних папках, пояснювати незнайомі файли та позначати неправильно розміщені класи. Вони особливо корисні під час перемикання між CodeЗапальник 3 та CodeРозкладки запалювача 4.

Асистенти ШІ пояснюють, як контролери обробляють запити, моделі керують даними, а представлення відображають вивід, а потім генерують відповідні файли у правильних папках. Вони також можуть переглянути ваш код, запропонувати рефакторинг та посилити розділення MVC під час створення реального коду. CodeПроекти запалювання.

Підсумуйте цей пост за допомогою: