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Структура на запалката:
- прилагане – това е директорията, която ще съдържа логиката на вашето приложение. Целият код на вашето приложение ще се съдържа в тази директория.
- система – тази папка съдържа основните файлове на рамката. Не се препоръчва да правите промени в тази директория или да поставяте свой собствен код на приложение в тази директория.
- 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/. Придържайте се към тази дисциплина и вашият проект ще остане лесен за навигация, дори когато расте.
