CodeIgniter Mappe-, Fil- og Katalogstruktur

โšก Smart opsummering

CodeIgniter organiserer et PHP-projekt i forudsigelige mapper til applikationslogik, framework-systemfiler, composer-leverandรธrpakker og et enkelt entry-script, sรฅ begyndere hurtigt kan finde kode, og mellemliggende udviklere kan skalere en ren MVC-struktur.

  • ๐Ÿ“ Programmappe: Indeholder dine controllere, modeller, visninger, konfiguration, cache, hjรฆlpere, hooks, sprog, biblioteker, logfiler og tredjepartspakker.
  • ๐Ÿงฉ Systemmappe: Gemmer framework-kernen, databasedrivere, skrifttyper, hjรฆlpere, sprog og indbyggede biblioteker; rediger ikke disse filer direkte.
  • ๐Ÿ‡ง๐Ÿ‡ท Indgang: Roden index.php starter frameworket, angiver stier og ruter alle HTTP-anmodninger gennem frontcontrolleren.
  • โœ… Versionsforskelle: CodeIgniter 3 bruger application/ og system/, mens CodeIgniter 4 introducerer app/-, public/- og writable/-mapper for strengere adskillelse.
  • ๐Ÿงช Leverandรธr og brugervejledning: Leverandรธren gemmer composer-pakker, du implementerer, mens user_guide er lokal dokumentation, som du bรธr udelade fra produktionsservere.

CodeIgniter-mappe

Forstรฅelse af filstrukturen i CodeIgniter er afgรธrende, fรธr du bygger en rigtig applikation. Et forudsigeligt layout hjรฆlper dig med hurtigt at finde controllere, modeller og visninger, fejlfinde routingproblemer og onboarde nye teammedlemmer hurtigere. Denne vejledning dรฆkker den klassiske CodeIgniter 3-struktur, der stadig er bredt anvendt, og som ogsรฅ tydeliggรธr de vigtigste forskelle, du vil stรธde pรฅ i CodeIgniter 4.x, som introducerer app/, public/ og writable/ som separate mapper pรฅ topniveau.

Hvad er CodeIgniter fil- og mappestruktur?

CodeIgniter-filstrukturen er standardarrangementet af mapper og PHP-filer, som frameworket leveres med, efter du har downloadet eller installeret det. Den adskiller din applikationslogik fra framework-kernen, holder composer-afhรฆngigheder isolerede og eksponerer et enkelt indgangspunkt via index.php. Fรธlgende billede viser filstrukturen i CodeTรฆndingsapparat:

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

Her er et forenklet katalogtrรฆ til en frisk CodeInstallation af Igniter 3:

// CodeIgniter 3 root layout
project-root/
โ”œโ”€โ”€ application/
โ”œโ”€โ”€ system/
โ”œโ”€โ”€ user_guide/
โ”œโ”€โ”€ vendor/
โ”œโ”€โ”€ composer.json
โ”œโ”€โ”€ composer.lock
โ””โ”€โ”€ index.php

Forklaring af mapper pรฅ รธverste niveau

Lad os nu se pรฅ ovenstรฅende filer i CodeTรฆndingsstruktur:

  • ansรธgning โ€“ dette er den mappe, der indeholder din applikationslogik. Al din applikationskode vil vรฆre indeholdt i denne mappe.
  • systemet โ€“ denne mappe indeholder ramme-kernefilerne. Det frarรฅdes at foretage รฆndringer i denne mappe eller indsรฆtte din egen applikationskode i denne mappe.
  • brugervejledning โ€“ denne mappe indeholder brugervejledningen til Codetรฆndsats.
  • sรฆlger โ€“ denne mappe indeholder kildekoden til composer-pakkerne. De andre filer relateret til denne mappe er composer.json og composer.lock.
  • index.php โ€“ dette er indgangspunktet i ansรธgningen.

CodeUndermapper til Igniter-applikationen

Lad os nu se nรฆrmere pรฅ mapperne. Som nรฆvnt indeholder applikationsmappen din projektkode. I dette afsnit vil vi se pรฅ de interne undermapper i CodeIgniter-mappestruktur:

  • cache โ€“ gemmer cachelagrede filer genereret af output- og databasecachebibliotekerne.
  • config โ€“ gemmer konfigurationsfiler sรฅsom database.php, routes.php og autoload.php.
  • controllere โ€“ alle applikationscontrollere er defineret her og kortlagt URL segmenter til handlinger.
  • kerne โ€“ indeholder brugerdefinerede kerneklasser, der udvider systemfiler. Hvis du for eksempel opretter en basiscontroller, som andre controllere skal udvide, skal du placere den i denne mappe.
  • hjรฆlpere โ€“ denne fortegnelse over CodeIgniter-mappestrukturen bruges til brugerdefinerede hjรฆlpefunktioner.
  • kroge โ€“ bruges til brugerdefinerede hooks i CI-mappestrukturen, der aktiveres under framework-udfรธrelsescyklussen.
  • Sprog โ€“ bruges til at gemme sprogfiler til applikationer, der bruger mere end รฉt sprog.
  • biblioteker โ€“ bruges til at gemme brugerdefinerede biblioteker.
  • logs โ€“ applikationslogfiler gemmes i denne mappe.
  • modeller โ€“ alle applikationsmodeller skal defineres i denne mappe.
  • tredje part โ€“ dette bruges til brugerdefinerede pakker, som du eller andre udviklere har oprettet.
  • visninger โ€“ applikationsvisninger placeres i denne mappe.

Her er et eksempel pรฅ programmets undermappetrรฆ:

// application/ subdirectories
application/
โ”œโ”€โ”€ cache/
โ”œโ”€โ”€ config/
โ”œโ”€โ”€ controllers/
โ”œโ”€โ”€ core/
โ”œโ”€โ”€ helpers/
โ”œโ”€โ”€ hooks/
โ”œโ”€โ”€ language/
โ”œโ”€โ”€ libraries/
โ”œโ”€โ”€ logs/
โ”œโ”€โ”€ models/
โ”œโ”€โ”€ third_party/
โ””โ”€โ”€ views/

CodeUndermapper til tรฆndingssystem

Lad os nu se pรฅ systemundermapper i CI-filstrukturen. Husk, at det er her, frameworkets kildekode findes, sรฅ foretag ikke รฆndringer i filerne i denne mappe.

  • kerne โ€“ dette er ligesom hjertet af CodeIgniter FrameworkAlle kernefilerne, der udgรธr frameworket, er placeret her. Hvis du vil udvide funktionaliteten af โ€‹โ€‹kernefilen, skal du oprette en brugerdefineret kernefil i programmappen. Derefter kan du tilsidesรฆtte eller tilfรธje ny adfรฆrd, som du รธnsker. Du bรธr aldrig foretage รฆndringer direkte her.
  • database โ€“ databasedrivere, cache og andre filer, der er nรธdvendige for databaseoperationer, findes her.
  • skrifttyper โ€“ som navnet antyder, indeholder denne mappe skrifttyper og information om skrifttyper.
  • hjรฆlpere โ€“ denne mappe i CodeIgniter-strukturmappen indeholder hjรฆlpefunktioner, der fรธlger med ud af รฆsken.
  • Sprog โ€“ indeholder sprogfiler, der bruges af frameworket.
  • biblioteker โ€“ indeholder kildefilerne til de forskellige biblioteker, der fรธlger med CodeTรฆnderen er taget ud af kassen.

Systemmappens layout ser sรฅdan ud:

// system/ subdirectories
system/
โ”œโ”€โ”€ core/
โ”œโ”€โ”€ database/
โ”œโ”€โ”€ fonts/
โ”œโ”€โ”€ helpers/
โ”œโ”€โ”€ language/
โ””โ”€โ”€ libraries/

CodeIgniter brugervejledning Katalog

Denne oversigt fungerer som en referencevejledning, nรฅr du รธnsker at forstรฅ CodeIgniter API. Du bรธr ikke uploade denne mappe, nรฅr du implementerer din applikation i produktion, da den รธger stรธrrelsen og afslรธrer dokumentation, der ikke hรธrer hjemme pรฅ en liveserver.

CodeIgniter-leverandรธrkatalog

Denne mappe indeholder kildefiler til pakker, som du installerer via composer. Filerne i denne mappe skal forblive, som de er, og der mรฅ ikke foretages รฆndringer i dem. I modsรฆtning til user_guide-mappen skal denne mappe uploades, hvis du bruger composer-pakker i din applikation.

index.php-fil

Index.php-filen i CodeIgniter-filstrukturen indeholder bootstrap-koden, der definerer miljรธ, stier og fejlrapportering, fรธr kontrollen overfรธres til frameworket. Denne fil er placeret i rodmappen og fungerer som frontcontroller for alle indgรฅende HTTP-anmodninger.

Hvordan CodeIgniter 4 รฆndrer strukturen

CodeIgniter 4.x har reorganiseret layoutet for at forbedre sikkerheden og automatisk indlรฆsning af PSR-4. I stedet for en enkelt programmappe ser du nu tre mapper pรฅ รธverste niveau, der adskiller bekymringerne mere prรฆcist:

  • app / โ€“ svarende til den รฆldre applikation/mappe, der indeholder controllere, modeller, visninger, konfiguration, filtre og biblioteker.
  • offentlig/ โ€“ den eneste web-eksponerede mappe, der indeholder index.php og dine CSS-, JS- og billedelementer.
  • skrivbar/ โ€“ gemmer cache, logfiler, sessioner og uploads, som frameworket skal skrive under kรธrsel.
  • system/ โ€“ indeholder stadig kernen i frameworket, navneafstanden er under CodeTรฆndingsapparat\.
  • sรฆlger / โ€“ 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 nyt projekt i dag, CodeIgniter 4 er den anbefalede version. Hvis du vedligeholder en รฆldre kodebase, vil CI 3-strukturen beskrevet ovenfor matche det, du ser pรฅ disken.

Arbejder med CodeTรฆndingsstruktur Dag til dag

Nรฅr du ved, hvor hver mappe er placeret, bliver almindelige opgaver ligetil. Opret en ny controller under application/controllers/ (eller app/Controllers/ i CI 4), match den med en rute i config/routes.php, byg en model under models/, og render output fra en view-fil i views/. Behold konfigurationen i config/, slip genanvendelig kode i helpers/ eller libraries/, og lad composer administrere alt inde i vendor/. Hold dig til denne disciplin, og dit projekt vil forblive let at navigere i, selvom det vokser.

Ofte Stillede Spรธrgsmรฅl

Programmappen indeholder din projektkode, sรฅsom controllere, modeller og visninger, og du kan frit redigere den. Systemmappen indeholder framework-kernen, og du bรธr aldrig รฆndre dens filer, da framework-opgraderinger vil overskrive dem.

In CodeI Igniter 4 placerer du nye controllere i mappen app/Controllers/ ved hjรฆlp af PSR-4 navnerum. Match filnavnet med klassenavnet, og registrer derefter en rute i app/Config/Routes.php, sรฅ frameworket kan sende anmodninger til den.

Nej. Mappen user_guide er kun lokal dokumentation. Udelad den fra produktionsimplementeringer for at reducere fodaftryk og undgรฅ at eksponere framework-referencemateriale pรฅ en liveserver. Leverandรธr- og systemmapper skal derimod implementeres.

Index.php-filen er den forreste controller. Den indstiller miljรธet, definerer stikonstanter og indlรฆser framework-bootstrappen, sรฅ alle indgรฅende anmodninger dirigeres gennem CodeIgniter-pipelinen fรธr den nรฅr dine controllere og visninger.

Ja. AI-vรฆrktรธjer som GitHub Copilot, Cursor og Claude kan scaffolde controllere, modeller og views i de korrekte mapper, forklare ukendte filer og markere forkert placerede klasser. De er isรฆr nyttige, nรฅr du skifter mellem CodeTรฆnder 3 og CodeIgniter 4 layouts.

AI-assistenter forklarer, hvordan controllere hรฅndterer anmodninger, modeller administrerer data, og visninger gengiver output, og derefter genererer matchende filer i de korrekte mapper. De kan ogsรฅ gennemgรฅ din kode, foreslรฅ refaktorering og forstรฆrke MVC-separation, mens du bygger virkelige koder. CodeIgniter-projekter.

Opsummer dette indlรฆg med: