CodeIgniter-mapp-, fil- och katalogstruktur
⚡ Smart sammanfattning
CodeIgniter organiserar ett PHP-projekt i förutsägbara mappar för applikationslogik, ramverkssystemfiler, composer-leverantörspaket och ett enda skript, så att nybörjare snabbt kan hitta kod och mellanliggande utvecklare kan skala en ren MVC-struktur.

Förstå filstrukturen i CodeIgniter är avgörande innan du bygger någon riktig applikation. En förutsägbar layout hjälper dig att snabbt hitta kontroller, modeller och vyer, felsöka routingproblem och onboarda nya teammedlemmar snabbare. Den här handledningen täcker den klassiska CodeIgniter 3-struktur som fortfarande används i stor utsträckning, och som också förtydligar de viktigaste skillnaderna du kommer att stöta på i CodeIgniter 4.x, som introducerar app/, public/ och writable/ som separata mappar på toppnivå.
Vad är CodeIgniter fil- och katalogstruktur?
Ocuco-landskapet CodeIgniter-filstrukturen är standardarrangemanget för mappar och PHP-filer som ramverket levereras med efter att du har laddat ner eller installerat det. Den separerar din applikationslogik från ramverkets kärna, håller composer-beroenden isolerade och exponerar en enda ingångspunkt via index.php. Följande bild visar filstrukturen i CodeTändare:
Här är ett förenklat katalogträd för en ny CodeInstallation av Igniter 3:
// CodeIgniter 3 root layout project-root/ ├── application/ ├── system/ ├── user_guide/ ├── vendor/ ├── composer.json ├── composer.lock └── index.php
Förklaring av mappar på toppnivå
Låt oss nu titta på filerna ovan i CodeTändningsstruktur:
- ansökan – det här är katalogen som kommer att innehålla din applikationslogik. All din applikationskod kommer att finnas i den här katalogen.
- system – den här mappen innehåller ramfilernas kärna. Det rekommenderas inte att göra ändringar i den här katalogen eller lägga in din egen applikationskod i den här katalogen.
- Användarguide – den här katalogen innehåller användarmanualen för Codeigniter.
- leverantör – den här katalogen innehåller källkoden för composer-paketen. De andra filerna relaterade till den här katalogen är composer.json och composer.lock.
- index.php – detta är ingången till ansökan.
CodeUnderkataloger för Igniter-applikationen
Låt oss nu titta på katalogerna mer i detalj. Som nämnts innehåller applikationskatalogen din projektkod. I det här avsnittet ska vi titta på de interna underkatalogerna i CodeIgniter-katalogstruktur:
- cache – lagrar cachade filer som genereras av utdata- och databasens cachningsbibliotek.
- config – sparar konfigurationsfiler som database.php, routes.php och autoload.php.
- controllers – alla applikationskontroller definieras här och mappas URL segment till handlingar.
- kärna – innehåller anpassade kärnklasser som utökar systemfiler. Om du till exempel skapar en baskontroller som andra kontroller ska utöka, placerar du den i den här katalogen.
- hjälpare – denna katalog över CodeIgniter-mappstrukturen används för användardefinierade hjälpfunktioner.
- krokar – används för anpassade hookar i CI-mappstrukturen som utlöses under ramverkets exekveringscykel.
- språk – används för att lagra språkfiler för applikationer som använder mer än ett språk.
- bibliotek – används för att lagra specialskapade bibliotek.
- loggar – programloggfiler lagras i den här katalogen.
- modeller – alla applikationsmodeller bör definieras i den här katalogen.
- tredje part – detta används för anpassade paket som du eller andra utvecklare har skapat.
- visningar – applikationsvyer hamnar i den här katalogen.
Här är ett exempel på programmets underkatalogträd:
// application/ subdirectories application/ ├── cache/ ├── config/ ├── controllers/ ├── core/ ├── helpers/ ├── hooks/ ├── language/ ├── libraries/ ├── logs/ ├── models/ ├── third_party/ └── views/
CodeUnderkataloger för Igniter System
Låt oss nu titta på systemunderkataloger i CI-filstrukturen. Kom ihåg att det är här ramverkets källkod finns, gör därför inga ändringar i filerna i den här katalogen.
- kärna – det här är som hjärtat av CodeIgniter-ramverketAlla kärnfiler som utgör ramverket finns här. Om du vill utöka kärnfilens funktionalitet måste du skapa en anpassad kärnfil i programkatalogen. Därefter kan du åsidosätta eller lägga till nya beteenden som du önskar. Du bör aldrig göra ändringar direkt här.
- databas – databasdrivrutiner, cache och andra filer som behövs för databasoperationer finns här.
- typsnitt – som namnet antyder innehåller den här katalogen teckensnitt och information om teckensnitt.
- hjälpare – den här katalogen i CodeIgniter-strukturmappen innehåller hjälpfunktioner som medföljer direkt ur lådan.
- språk – innehåller språkfiler som används av ramverket.
- bibliotek – innehåller källfilerna för de olika biblioteken som följer med CodeTändaren direkt ur lådan.
Systemmappens layout ser ut så här:
// system/ subdirectories system/ ├── core/ ├── database/ ├── fonts/ ├── helpers/ ├── language/ └── libraries/
CodeIgniter user_guide Katalog
Den här katalogen fungerar som en referensguide när du vill förstå CodeIgniter API. Du bör inte ladda upp den här katalogen när du driftsätter din applikation till produktion, eftersom den ökar storleken och exponerar dokumentation som inte hör hemma på en aktiv server.
CodeKatalog över leverantörer av Igniter
Den här katalogen innehåller källfiler för paket som du installerar via composer. Filerna i den här katalogen ska lämnas som de är och inga ändringar ska göras i dem. Till skillnad från katalogen user_guide ska den här katalogen laddas upp om du använder composer-paket i din applikation.
index.php-fil
Index.php-filen i CodeIgniter-filstrukturen innehåller bootstrap-koden som definierar miljö, sökvägar och felrapportering innan kontrollen överförs till ramverket. Denna fil finns i rotkatalogen och fungerar som frontkontrollant för varje inkommande HTTP-förfrågan.
Hur CodeIgniter 4 ändrar strukturen
CodeIgniter 4.x har omorganiserat layouten för att förbättra säkerheten och automatisk laddning av PSR-4. Istället för en enda programmapp ser du nu tre mappar på toppnivå som separerar frågorna mer strikt:
- app / – motsvarande den äldre applikationen/mappen, som innehåller kontroller, modeller, vyer, konfiguration, filter och bibliotek.
- offentlig/ – den enda webbexponerade mappen, som innehåller index.php och dina CSS-, JS- och bildresurser.
- skrivbar/ – lagrar cache, loggar, sessioner och uppladdningar som ramverket behöver skriva vid körning.
- system/ – innehåller fortfarande ramverkets kärna, namngivet under CodeTändare\.
- Säljare/ – kompositörspaket, identiska i roll som CI 3.
// CodeIgniter 4 root layout project-root/ ├── app/ ├── public/ ├── writable/ ├── system/ ├── vendor/ ├── tests/ ├── composer.json ├── env └── spark
Om du startar ett nytt projekt idag, CodeIgniter 4 är den rekommenderade versionen. Om du underhåller en äldre kodbas kommer CI 3-strukturen som beskrivs ovan att matcha det du ser på disken.
Att arbeta med CodeTändningsstruktur Dag för dag
När du väl vet var varje mapp finns blir vanliga uppgifter enkla. Skapa en ny kontroller under application/controllers/ (eller app/Controllers/ i CI 4), matcha den med en rutt i config/routes.php, bygg en modell under models/ och rendera utdata från en view-fil i views/. Behåll konfigurationen i config/, släpp återanvändbar kod i helpers/ eller libraries/ och låt composer hantera allt inuti vendor/. Håll dig till denna disciplin så kommer ditt projekt att förbli lätt att navigera även när det växer.
