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.

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:
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.
