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.

  • ๐Ÿ“ Applicatiemap: Hier vind je je controllers, modellen, views, configuratiebestanden, cache, helpers, hooks, taalbestanden, bibliotheken, logbestanden en pakketten van derden.
  • ๐Ÿงฉ Systeemmap: Hierin bevinden zich de frameworkkern, databasestuurprogramma's, lettertypen, hulpprogramma's, de taal en ingebouwde bibliotheken; bewerk deze bestanden niet rechtstreeks.
  • โš™๏ธ Ingangspunt: Het rootbestand index.php start het framework op, stelt paden in en routeert elk HTTP-verzoek via de frontcontroller.
  • โœ… Versieverschillen: CodeIgniter 3 gebruikt application/ en system/, terwijl CodeIgniter 4 introduceert de mappen app/, public/ en writable/ voor een striktere scheiding.
  • ๐Ÿงช Leverancier en gebruikershandleiding: Vendor slaat de Composer-pakketten op die je implementeert, terwijl user_guide lokale documentatie is die je van productieservers moet weren.

CodeIgniter-map

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:

CodeIgniter-bestands-/map-/directorystructuur
CodeIgniter-bestands-/map-/directorystructuur

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.

Veelgestelde vragen

De applicatiemap bevat de code van je project, zoals controllers, modellen en views, en je kunt deze vrij bewerken. De systeemmap bevat de frameworkkern en je moet de bestanden daarin nooit wijzigen, omdat frameworkupdates deze zullen overschrijven.

In CodeIn Igniter 4 plaats je nieuwe controllers in de map `app/Controllers/` met behulp van PSR-4-namespaces. Zorg ervoor dat de bestandsnaam overeenkomt met de klassenaam en registreer vervolgens een route in `app/Config/Routes.php` zodat het framework er verzoeken naartoe kan sturen.

Nee. De map user_guide bevat alleen lokale documentatie. Sluit deze uit van productie-implementaties om de footprint te verkleinen en te voorkomen dat referentiemateriaal van het framework op een live server wordt blootgesteld. Vendor- en system-mappen moeten daarentegen wel worden geรฏmplementeerd.

Het bestand index.php is de frontcontroller. Het stelt de omgeving in, definieert padconstanten en laadt de framework-bootstrap, zodat elk inkomend verzoek via de frontcontroller wordt gerouteerd. CodeIgniter-pipeline voordat deze je controllers en views bereikt.

Ja. AI-tools zoals GitHub Copilot, Cursor en Claude kunnen controllers, modellen en views in de juiste mappen plaatsen, onbekende bestanden uitleggen en klassen op de verkeerde plek signaleren. Ze zijn vooral handig wanneer je wisselt tussen verschillende omgevingen. CodeOntsteker 3 en CodeIgniter 4-lay-outs.

AI-assistenten leggen uit hoe controllers verzoeken afhandelen, modellen gegevens beheren en views uitvoer genereren, en genereren vervolgens bijbehorende bestanden in de juiste mappen. Ze kunnen ook je code beoordelen, refactoring-suggesties geven en de MVC-scheiding versterken terwijl je daadwerkelijk code bouwt. CodeIgniter-projecten.

Vat dit bericht samen met: