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.

  • 📁 Programmapp: Innehåller dina kontroller, modeller, vyer, konfiguration, cache, hjälpprogram, hooks, språk, bibliotek, loggar och tredjepartspaket.
  • 🧩 Systemmapp: Lagrar ramverkets kärna, databasdrivrutiner, teckensnitt, hjälpfunktioner, språk och inbyggda bibliotek; redigera inte dessa filer direkt.
  • ⚙️ Inkörsport: Rotfilen index.php startar ramverket, anger sökvägar och dirigerar varje HTTP-förfrågan genom frontkontrollen.
  • Versionsskillnader: CodeIgniter 3 använder application/ och system/, medan CodeIgniter 4 introducerar app/-, public/- och writable/-mappar för striktare separation.
  • 🧪 Leverantör och användarhandledning: Leverantören lagrar composer-paket som du distribuerar, medan user_guide är lokal dokumentation som du bör exkludera från produktionsservrar.

CodeTändningsmapp

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:

CodeIgniter fil-/mapp-/katalogstruktur
CodeIgniter fil-/mapp-/katalogstruktur

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.

Vanliga frågor

Programmappen innehåller din projektkod, såsom kontroller, modeller och vyer, och du kan redigera den fritt. Systemmappen innehåller ramverkets kärna, och du bör aldrig ändra dess filer eftersom ramverksuppgraderingar kommer att skriva över dem.

In CodeI Igniter 4 placerar du nya kontroller i mappen app/Controllers/ med hjälp av PSR-4-namnrymder. Matcha filnamnet med klassnamnet och registrera sedan en rutt i app/Config/Routes.php så att ramverket kan skicka förfrågningar till den.

Nej. Mappen user_guide är endast lokal dokumentation. Undantag den från produktionsdistributioner för att minska fotavtrycket och undvika att exponera ramverksreferensmaterial på en liveserver. Leverantörs- och systemmappar måste däremot distribueras.

Filen index.php är den främre kontrollanten. Den ställer in miljön, definierar sökvägskonstanter och laddar framework-bootstrapen så att varje inkommande förfrågan dirigeras via CodeIgniter-pipelinen innan den når dina styrenheter och vyer.

Ja. AI-verktyg som GitHub Copilot, Cursor och Claude kan scaffolda kontroller, modeller och vyer i rätt mappar, förklara okända filer och flagga felplacerade klasser. De är särskilt användbara när du växlar mellan CodeTändare 3 och CodeIgniter 4-layouter.

AI-assistenter förklarar hur styrenheter hanterar förfrågningar, modeller hanterar data och vyer renderar utdata, och genererar sedan matchande filer i rätt mappar. De kan också granska din kod, föreslå omstruktureringar och förstärka MVC-separation när du bygger verkliga CodeIgniter-projekt.

Sammanfatta detta inlägg med: