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

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