CodeMap-, bestands- en directorystructuur van Igniter
โก Slimme samenvatting
CodeIgniter organiseert een PHP-project in voorspelbare mappen voor applicatielogica, framework-systeembestanden, Composer-leverancierspakketten en een centraal opstartscript. Hierdoor kunnen beginners snel code vinden en kunnen ontwikkelaars met enige ervaring een overzichtelijke MVC-structuur schalen.

Inzicht in de bestandsstructuur in CodeIgniter is essentieel voordat je ook maar รฉรฉn echte applicatie bouwt. Een voorspelbare lay-out helpt je controllers, modellen en views snel te vinden, routingproblemen op te lossen en nieuwe teamleden sneller in te werken. Deze tutorial behandelt de klassieke Igniter-implementatie. CodeDe structuur van Igniter 3, die nog steeds veel gebruikt wordt, wordt uitgelegd, en de belangrijkste verschillen die je zult tegenkomen worden toegelicht. CodeIgniter 4.x introduceert app/, public/ en writable/ als afzonderlijke mappen op het hoogste niveau.
Wat is de CodeIgniter-bestands- en mapstructuur?
De CodeDe bestandsstructuur van Igniter is de standaardindeling van mappen en PHP-bestanden waarmee het framework wordt geleverd na het downloaden of installeren. Het scheidt je applicatielogica van de frameworkkern, houdt Composer-afhankelijkheden geรฏsoleerd en biedt รฉรฉn toegangspunt via index.php. De volgende afbeelding toont de bestandsstructuur in CodeOntsteker:
Hier is een vereenvoudigde mappenstructuur voor een nieuwe installatie. CodeInstallatie van Igniter 3:
// CodeIgniter 3 root layout project-root/ โโโ application/ โโโ system/ โโโ user_guide/ โโโ vendor/ โโโ composer.json โโโ composer.lock โโโ index.php
Mappen op het hoogste niveau uitgelegd
Laten we nu de bovenstaande bestanden bekijken in CodeStructuur van de ontsteker:
- toepassing โ Dit is de map waarin uw applicatielogica zich bevindt. Al uw applicatiecode komt in deze map te staan.
- system โ deze map bevat de kernbestanden van het raamwerk. Het wordt afgeraden om wijzigingen in deze map aan te brengen of uw eigen applicatiecode in deze map te plaatsen.
- gebruikershandleiding โ deze map bevat de gebruikershandleiding voor Codeontsteker.
- verkoper โ Deze map bevat de broncode van Composer-pakketten. Andere bestanden in deze map zijn composer.json en composer.lock.
- index.php โ dit is het toegangspunt tot de applicatie.
CodeSubmappen van de Igniter-applicatie
Laten we nu de mappenstructuur eens nader bekijken. Zoals gezegd, bevat de applicatiemap uw projectcode. In dit gedeelte zullen we de interne submappen in de applicatiemap nader bekijken. CodeIgniter-directorystructuur:
- cache โ slaat cachebestanden op die zijn gegenereerd door de uitvoer- en databasecachebibliotheken.
- config โ bewaart configuratiebestanden zoals database.php, routes.php en autoload.php.
- controllers โ alle applicatiecontrollers worden hier gedefinieerd en in kaart gebracht URL segmenten naar acties.
- kern โ bevat aangepaste kernklassen die systeembestanden uitbreiden. Als u bijvoorbeeld een basiscontroller maakt waarvan andere controllers moeten overerven, plaatst u deze in deze map.
- helpers โ deze map van de CodeDe mapstructuur van Igniter wordt gebruikt voor door de gebruiker gedefinieerde hulpfuncties.
- haken โ gebruikt voor aangepaste hooks in de CI-mapstructuur die worden geactiveerd tijdens de uitvoeringscyclus van het framework.
- taal โ wordt gebruikt om taalbestanden op te slaan voor applicaties die meer dan รฉรฉn taal gebruiken.
- bibliotheken โ wordt gebruikt om zelfgemaakte bibliotheken op te slaan.
- logs โ In deze map worden applicatielogbestanden bewaard.
- modellen โ Alle applicatiemodellen moeten in deze map worden gedefinieerd.
- derde partij โ Dit wordt gebruikt voor aangepaste pakketten die u of andere ontwikkelaars hebben gemaakt.
- . โ Applicatieweergaven worden in deze map geplaatst.
Hier volgt een voorbeeld van de subdirectorystructuur van de applicatie:
// application/ subdirectories application/ โโโ cache/ โโโ config/ โโโ controllers/ โโโ core/ โโโ helpers/ โโโ hooks/ โโโ language/ โโโ libraries/ โโโ logs/ โโโ models/ โโโ third_party/ โโโ views/
CodeSubmappen van het Igniter-systeem
Laten we nu eens kijken naar de systeemsubmappen in de CI-bestandsstructuur. Onthoud dat hier de broncode van het framework zich bevindt, dus breng geen wijzigingen aan in de bestanden in deze map.
- kern โ dit is als het hart van de CodeIgniter-frameworkAlle kernbestanden waaruit het framework bestaat, bevinden zich hier. Als u de functionaliteit van een kernbestand wilt uitbreiden, moet u een aangepast kernbestand aanmaken in de applicatiemap. Daarna kunt u het bestaande gedrag overschrijven of nieuw gedrag toevoegen. U mag hier nooit rechtstreeks wijzigingen aanbrengen.
- databank โ Hier vindt u databasestuurprogramma's, cachebestanden en andere bestanden die nodig zijn voor databasebewerkingen.
- fonts Zoals de naam al doet vermoeden, bevat deze map lettertypen en informatie over lettertypen.
- helpers โ deze map in de CodeDe map met de Igniter-structuur bevat hulpfuncties die standaard beschikbaar zijn.
- taal โ bevat taalbestanden die door het framework worden gebruikt.
- bibliotheken โ bevat de bronbestanden voor de verschillende bibliotheken die erbij worden geleverd. CodeOntsteker direct uit de verpakking.
De mapstructuur van het systeem ziet er als volgt uit:
// system/ subdirectories system/ โโโ core/ โโโ database/ โโโ fonts/ โโโ helpers/ โโโ language/ โโโ libraries/
CodeIgniter gebruikershandleiding Directory
Deze gids dient als naslagwerk voor wanneer u meer wilt weten over de CodeIgniter API. U dient deze map niet te uploaden wanneer u uw applicatie in productie neemt, aangezien dit de bestandsgrootte vergroot en documentatie blootlegt die niet thuishoort op een live server.
CodeLeveranciersgids voor Igniter
Deze map bevat bronbestanden voor pakketten die u via Composer installeert. De bestanden in deze map moeten ongewijzigd blijven en mogen niet worden aangepast. In tegenstelling tot de map user_guide, moet deze map wel worden geรผpload als u Composer-pakketten in uw applicatie gebruikt.
index.php-bestand
Het index.php-bestand in de CodeDe Igniter-bestandsstructuur bevat de bootstrap-code die de omgeving, paden en foutrapportage definieert voordat de controle aan het framework wordt overgedragen. Dit bestand bevindt zich in de hoofdmap en fungeert als de frontcontroller voor elk binnenkomend HTTP-verzoek.
Hoe CodeOntsteker 4 verandert de structuur
CodeIgniter 4.x heeft de lay-out opnieuw georganiseerd om de beveiliging en het automatisch laden van PSR-4 te verbeteren. In plaats van รฉรฉn enkele applicatiemap ziet u nu drie mappen op het hoogste niveau die de verschillende onderdelen duidelijker van elkaar scheiden:
- app / โ equivalent aan de oudere application/-map, waarin controllers, modellen, views, configuratiebestanden, filters en bibliotheken waren opgeslagen.
- openbaar/ โ de enige map die via het web toegankelijk is en die index.php en je CSS-, JS- en afbeeldingsbestanden bevat.
- beschrijfbaar/ โ slaat cachegegevens, logboeken, sessies en uploads op die het framework tijdens de uitvoering moet schrijven.
- systeem/ โ bevat nog steeds de frameworkkern, met een namespace onder CodeOntsteker.
- verkoper / โ Composer-pakketten, identiek aan CI 3.
// CodeIgniter 4 root layout project-root/ โโโ app/ โโโ public/ โโโ writable/ โโโ system/ โโโ vendor/ โโโ tests/ โโโ composer.json โโโ env โโโ spark
Als je vandaag een nieuw project start, CodeIgniter 4 is de aanbevolen versie. Als u een oudere codebase onderhoudt, komt de hierboven beschreven CI 3-structuur overeen met wat u op schijf ziet.
Samenwerken met de CodeIgniter Structuur Dagelijkse werkzaamheden
Als je eenmaal weet waar elke map zich bevindt, worden veelvoorkomende taken een stuk eenvoudiger. Maak een nieuwe controller aan in application/controllers/ (of app/Controllers/ in CI 4), koppel deze aan een route in config/routes.php, bouw een model in models/ en render de output van een view-bestand in views/. Bewaar de configuratie in config/, plaats herbruikbare code in helpers/ of libraries/ en laat Composer alles beheren in vendor/. Houd je aan deze discipline en je project blijft overzichtelijk, zelfs als het groeit.
