CodeIgniter-mappe-, fil- og katalogstruktur

⚡ Smart oppsummering

CodeIgniter organiserer et PHP-prosjekt i forutsigbare mapper for applikasjonslogikk, rammeverkssystemfiler, leverandørpakker for komponist og et enkelt oppføringsskript, slik at nybegynnere raskt kan finne kode og viderekomne utviklere kan skalere en ren MVC-struktur.

  • 📁 Programmappe: Inneholder kontrollere, modeller, visninger, konfigurasjon, hurtigbuffer, hjelpere, kroker, språk, biblioteker, logger og tredjepartspakker.
  • 🧩 Systemmappe: Lagrer rammeverkskjernen, databasedrivere, fonter, hjelpere, språk og innebygde biblioteker; ikke rediger disse filene direkte.
  • ⚙️ Inngangspunkt: Roten index.php starter opp rammeverket, angir stier og ruter alle HTTP-forespørsler gjennom frontkontrolleren.
  • Versjonsforskjeller: CodeIgniter 3 bruker applikasjon/ og system/, mens CodeIgniter 4 introduserer app/-, public/- og writable/-mapper for strengere separasjon.
  • 🧪 Leverandør og brukerveiledning: Leverandøren lagrer composer-pakkene du distribuerer, mens user_guide er lokal dokumentasjon du bør ekskludere fra produksjonsservere.

CodeIgniter-mappe

Forstå filstrukturen i CodeIgniter er viktig før du bygger en skikkelig applikasjon. En forutsigbar layout hjelper deg med å finne kontrollere, modeller og visninger raskt, feilsøke rutingsproblemer og onboarde nye teammedlemmer raskere. Denne veiledningen dekker den klassiske CodeIgniter 3-struktur som fortsatt er mye brukt, og som også tydeliggjør de viktigste forskjellene du vil støte på i CodeIgniter 4.x, som introduserer app/, public/ og writable/ som separate mapper på toppnivå.

Hva er CodeIgniter fil- og katalogstruktur?

Ocuco CodeIgniter-filstrukturen er standardarrangementet av mapper og PHP-filer som rammeverket leveres med etter at du har lastet det ned eller installert det. Den skiller applikasjonslogikken din fra rammeverkets kjerne, holder komponistavhengigheter isolert og eksponerer et enkelt inngangspunkt gjennom index.php. Følgende bilde viser filstrukturen i CodeTennapparat:

CodeIgniter fil-/mappe-/katalogstruktur
CodeIgniter fil-/mappe-/katalogstruktur

Her er et forenklet katalogtre for en fersk CodeInstallasjon av Igniter 3:

// CodeIgniter 3 root layout
project-root/
├── application/
├── system/
├── user_guide/
├── vendor/
├── composer.json
├── composer.lock
└── index.php

Forklaring av mapper på toppnivå

La oss nå se på filene ovenfor CodeTennstruktur:

  • søknad – dette er katalogen som skal inneholde applikasjonslogikken din. All applikasjonskoden din vil bli plassert i denne katalogen.
  • system – denne mappen inneholder kjernefilene for rammeverket. Det anbefales ikke å gjøre endringer i denne katalogen eller legge inn din egen applikasjonskode i denne katalogen.
  • brukerveiledning – denne katalogen inneholder brukermanualen for CodeTenner.
  • leverandør – denne katalogen inneholder kildekoden til composer-pakkene. De andre filene relatert til denne katalogen er composer.json og composer.lock.
  • index.php – dette er inngangspunktet til søknaden.

CodeUnderkataloger for Igniter-applikasjonen

La oss nå se nærmere på katalogene. Som nevnt inneholder applikasjonskatalogen prosjektkoden din. I denne delen skal vi se på de interne underkatalogene i CodeIgniter-katalogstruktur:

  • cache – lagrer mellomlagrede filer generert av utdata- og databasemellomlagringsbibliotekene.
  • config – lagrer konfigurasjonsfiler som database.php, routes.php og autoload.php.
  • kontrollere – alle applikasjonskontrollere er definert her og kartlagt URL segmenter til handlinger.
  • kjerne – inneholder egendefinerte kjerneklasser som utvider systemfiler. Hvis du for eksempel oppretter en basiskontroller som andre kontrollere skal utvide, plasserer du den i denne katalogen.
  • hjelpere – denne katalogen til CodeIgniter-mappestrukturen brukes for brukerdefinerte hjelpefunksjoner.
  • kroker – brukes for tilpassede kroker i CI-mappestrukturen som utløses under rammeverkets utførelsessyklus.
  • Språk – brukes til å lagre språkfiler for applikasjoner som bruker mer enn ett språk.
  • bibliotekene – brukes til å lagre spesiallagde biblioteker.
  • logger – applikasjonsloggfiler oppbevares i denne katalogen.
  • modeller – alle applikasjonsmodeller skal defineres i denne katalogen.
  • tredjepart – dette brukes for tilpassede pakker som du eller andre utviklere har laget.
  • visninger – applikasjonsvisninger går inn i denne katalogen.

Her er et eksempel på et underkatalogtre for applikasjonen:

// application/ subdirectories
application/
├── cache/
├── config/
├── controllers/
├── core/
├── helpers/
├── hooks/
├── language/
├── libraries/
├── logs/
├── models/
├── third_party/
└── views/

CodeUnderkataloger for Igniter-systemet

La oss nå se på systemunderkataloger i CI-filstrukturen. Husk at det er her rammeverkets kildekode ligger, så ikke gjør noen endringer i filene i denne katalogen.

  • kjerne – dette er som hjertet av CodeIgniter FrameworkAlle kjernefilene som utgjør rammeverket ligger her. Hvis du vil utvide funksjonaliteten til kjernefilen, må du opprette en tilpasset kjernefil i programkatalogen. Etter det kan du overstyre eller legge til ny atferd du ønsker. Du bør aldri gjøre endringer direkte her.
  • database – databasedrivere, hurtigbuffer og andre filer som trengs for databaseoperasjoner finnes her.
  • fonter – som navnet antyder, inneholder denne katalogen fonter og informasjon om fonter.
  • hjelpere – denne katalogen i CodeIgniter-strukturmappen inneholder hjelpefunksjoner som følger med ut av esken.
  • Språk – inneholder språkfiler som brukes av rammeverket.
  • bibliotekene – inneholder kildefilene for de ulike bibliotekene som følger med CodeTenneren rett ut av esken.

Systemmappeoppsettet ser slik ut:

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

CodeIgniter brukerveiledning Katalog

Denne katalogen fungerer som en referanseguide når du vil forstå CodeIgniter API. Du bør ikke laste opp denne katalogen når du distribuerer applikasjonen din til produksjon, da den øker størrelsen og eksponerer dokumentasjon som ikke hører hjemme på en aktiv server.

CodeIgniter-leverandørkatalog

Denne katalogen inneholder kildefiler for pakker du installerer via composer. Filene i denne katalogen skal stå som de er, og ingen endringer skal gjøres i dem. I motsetning til user_guide-katalogen, skal denne katalogen lastes opp hvis du bruker composer-pakker i applikasjonen din.

index.php-fil

Index.php-filen i CodeIgniter-filstrukturen inneholder bootstrap-koden som definerer miljø, stier og feilrapportering før kontrollen overføres til rammeverket. Denne filen ligger i rotkatalogen og fungerer som frontkontroller for alle innkommende HTTP-forespørsler.

Hvordan CodeIgniter 4 endrer strukturen

CodeIgniter 4.x omorganiserte layouten for å forbedre sikkerheten og automatisk lasting av PSR-4. I stedet for én enkelt programmappe ser du nå tre mapper på toppnivå som skiller bekymringene strengere:

  • app / – tilsvarende det eldre programmet/mappen, som inneholder kontrollere, modeller, visninger, konfigurasjon, filtre og biblioteker.
  • offentlig/ – den eneste netteksponerte mappen, som inneholder index.php og CSS-, JS- og bilderessursene dine.
  • skrivbar/ – lagrer hurtigbuffer, logger, økter og opplastinger som rammeverket må skrive under kjøretid.
  • system/ – inneholder fortsatt rammeverkets kjerne, navneavgrenset under CodeTennapparat\.
  • Leverandør/ – komponistpakker, identiske i rolle som CI 3.
// CodeIgniter 4 root layout
project-root/
├── app/
├── public/
├── writable/
├── system/
├── vendor/
├── tests/
├── composer.json
├── env
└── spark

Hvis du starter et nytt prosjekt i dag, CodeIgniter 4 er den anbefalte versjonen. Hvis du vedlikeholder en eldre kodebase, vil CI 3-strukturen beskrevet ovenfor samsvare med det du ser på disken.

Arbeider med CodeTennstruktur Daglig

Når du vet hvor hver mappe ligger, blir vanlige oppgaver enkle. Opprett en ny kontroller under application/controllers/ (eller app/Controllers/ i CI 4), match den med en rute i config/routes.php, bygg en modell under models/, og gjengi utdata fra en view-fil i views/. Behold konfigurasjonen i config/, slipp gjenbrukbar kode i helpers/ eller libraries/, og la composer administrere alt inne i vendor/. Hold deg til denne disiplinen, så vil prosjektet ditt forbli enkelt å navigere selv etter hvert som det vokser.

Spørsmål og svar

Programmappen inneholder prosjektkoden din, som kontrollere, modeller og visninger, og du kan redigere den fritt. Systemmappen inneholder rammeverkskjernen, og du bør aldri endre filene, fordi rammeverksoppgraderinger vil overskrive dem.

In CodeI Igniter 4 plasserer du nye kontrollere i app/Controllers/-mappen ved hjelp av PSR-4-navnerom. Match filnavnet med klassenavnet, og registrer deretter en rute i app/Config/Routes.php slik at rammeverket kan sende forespørsler til det.

Nei. Mappen user_guide er kun lokal dokumentasjon. Ekskluder den fra produksjonsdistribusjoner for å redusere fotavtrykket og unngå å eksponere rammeverksreferansemateriale på en aktiv server. Leverandør- og systemmapper må derimot distribueres.

Index.php-filen er den fremre kontrolleren. Den setter miljøet, definerer stikonstanter og laster inn rammeverkets oppstartsprosess slik at alle innkommende forespørsler rutes gjennom CodeIgniter-rørledningen før den når kontrollerne og visningene dine.

Ja. AI-verktøy som GitHub Copilot, Cursor og Claude kan sette opp kontrollere, modeller og visninger i riktige mapper, forklare ukjente filer og flagge feilplasserte klasser. De er spesielt nyttige når du bytter mellom CodeTennapparat 3 og CodeIgniter 4-oppsett.

AI-assistenter forklarer hvordan kontrollere håndterer forespørsler, modeller administrerer data og visninger gjengir utdata, og deretter genererer matchende filer i riktige mapper. De kan også gjennomgå koden din, foreslå refaktorering og forsterke MVC-separasjon mens du bygger ekte CodeIgniter-prosjekter.

Oppsummer dette innlegget med: