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

⚡ Умно обобщение

CodeIgniter организира PHP проект в предвидими папки за логиката на приложението, системните файлове на рамката, пакетите на доставчиците на композитори и скрипт с един запис, така че начинаещите могат бързо да намират код, а средно напредналите разработчици могат да мащабират чиста MVC структура.

  • 📁 Папка на приложението: Съдържа вашите контролери, модели, изгледи, конфигурация, кеш, помощни програми, куки, език, библиотеки, лог файлове и пакети на трети страни.
  • 🧩 Системна папка: Съхранява ядрото на рамката, драйверите на базата данни, шрифтовете, помощните програми, езика и вградените библиотеки; не редактирайте тези файлове директно.
  • Входна точка: Коренният файл index.php стартира рамката, задава пътища и маршрутизира всяка HTTP заявка през предния контролер.
  • Разлики във версиите: CodeIgniter 3 използва приложение/ и система/, докато CodeIgniter 4 въвежда папки app/, public/ и writable/ за по-стриктно разделяне.
  • 🧪 Ръководство за доставчик и потребителя: Vendor съхранява пакетите за композитор, които внедрявате, докато 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Структура на запалката:

  • прилагане – това е директорията, която ще съдържа логиката на вашето приложение. Целият код на вашето приложение ще се съдържа в тази директория.
  • система – тази папка съдържа основните файлове на рамката. Не се препоръчва да правите промени в тази директория или да поставяте свой собствен код на приложение в тази директория.
  • user_guide – тази директория съдържа ръководството за потребителя за Codeподпалвач.
  • продавач – тази директория съдържа изходния код на пакетите за композитор. Другите файлове, свързани с тази директория, са 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Рамка за запалванеВсички основни файлове, които съставляват рамката, се намират тук. Ако искате да разширите функционалността на основния файл, трябва да създадете персонализиран основен файл в директорията на приложението. След това можете да презапишете или добавите ново поведение, което желаете. Никога не трябва да правите промени директно тук.
  • база данни – тук са предоставени драйвери за бази данни, кеш памет и други файлове, необходими за работата с базата данни.
  • шрифтове – както подсказва името, тази директория съдържа шрифтове и информация, свързана с шрифтове.
  • помощници – тази директория в CodeПапката на структурата на Igniter съдържа помощни функции, които са предварително зададени.
  • език – съдържа езикови файлове, които се използват от рамката.
  • библиотеки – съдържа изходните файлове за различните библиотеки, които се доставят с CodeЗапалката е извадена от кутията.

Разположението на системните папки изглежда така:

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

CodeДиректория за потребителско ръководство на Igniter

Този справочник служи като справочно ръководство, когато искате да разберете CodeIgniter API. Не трябва да качвате тази директория, когато внедрявате приложението си в производствена среда, тъй като това добавя размер и излага документация, която няма място на активен сървър.

CodeСправочник на доставчици на запалки

Тази директория съдържа изходните файлове за пакетите, които инсталирате чрез composer. Файловете в тази директория трябва да се оставят такива, каквито са, и не трябва да се правят промени в тях. За разлика от директорията user_guide, тази директория трябва да се качи, ако използвате composer пакети във вашето приложение.

index.php файл

Файлът index.php в CodeФайловата структура на Igniter съдържа кода за първоначално зареждане, който дефинира средата, пътищата и докладването на грешки, преди да предаде контрола на рамката. Този файл се намира в главната директория и действа като фронт контролер за всяка входяща HTTP заявка.

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

CodeIgniter 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

Ако започвате нов проект днес, CodeIgniter 4 е препоръчителната версия. Ако поддържате по-стара кодова база, структурата на CI 3, описана по-горе, ще съответства на това, което виждате на диска.

Работа с CodeСтруктура на запалката - ден за ден

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

Въпроси и Отговори

Папката на приложението съдържа кода на вашия проект, като например контролери, модели и изгледи, и вие го редактирате свободно. Системната папка съдържа ядрото на рамката и никога не трябва да променяте файловете ѝ, защото надстройките на рамката ще ги презапишат.

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

Не. Папката user_guide е само за локална документация. Изключете я от производствените внедрявания, за да намалите обема и да избегнете излагането на справочен материал за рамката на активен сървър. Папките на доставчиците и системата, за разлика от тях, трябва да бъдат внедрени.

Файлът index.php е фронт контролерът. Той задава средата, дефинира константи на пътя и зарежда bootstrap-а на рамката, така че всяка входяща заявка да се маршрутизира през CodeПайплайнът на Igniter (запалвач) е готов, преди да достигне до вашите контролери и изгледи.

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

Асистентите с изкуствен интелект обясняват как контролерите обработват заявките, моделите управляват данните, а изгледите рендират изхода, след което генерират съответстващи файлове в правилните папки. Те могат също така да прегледат вашия код, да предложат рефакторинги и да подсилят MVC разделянето, докато изграждате реални... CodeПроекти за запалване.

Обобщете тази публикация с: