CodeIgniter-kansio-, tiedosto- ja hakemistorakenne

โšก ร„lykรคs yhteenveto

CodeIgniter jรคrjestรครค PHP-projektin ennustettaviin kansioihin sovelluslogiikalle, jรคrjestelmรคtiedostoille, composer-toimittajan paketeille ja yksittรคiselle skriptille, jotta aloittelijat voivat paikantaa koodin nopeasti ja keskitason kehittรคjรคt voivat skaalata selkeรคn MVC-rakenteen.

  • ๐Ÿ“ Sovelluskansio: Sรคilyttรครค ohjaimet, mallit, nรคkymรคt, kokoonpanot, vรคlimuistin, apuohjelmat, hookit, kielen, kirjastot, lokit ja kolmannen osapuolen paketit.
  • ๐Ÿงฉ Jรคrjestelmรคkansio: Tallentaa kehyksen ytimen, tietokanta-ajurit, fontit, apuohjelmat, kielen ja sisรครคnrakennetut kirjastot; รคlรค muokkaa nรคitรค tiedostoja suoraan.
  • โš™๏ธ Sisรครคntulopiste: Juuritiedosto index.php kรคynnistรครค kehyksen, asettaa polut ja reitittรครค jokaisen HTTP-pyynnรถn etuohjaimen kautta.
  • โœ… Versioiden erot: CodeIgniter 3 kรคyttรครค application/- ja system/-metodeja, kun taas CodeIgniter 4:ssรค on nyt entistรค tarkempi erottelu app/-, public/- ja writable/-kansioilla.
  • ๐Ÿงช Myyjรคn ja kรคyttรคjรคn opas: Myyjรค tallentaa kรคyttรถรถnottamasi muokkauspaketit, kun taas user_guide on paikallista dokumentaatiota, joka tulisi jรคttรครค pois tuotantopalvelimilta.

CodeSytytinkansio

Tiedostorakenteen ymmรคrtรคminen CodeIgniter on vรคlttรคmรคtรถn ennen minkรครคn todellisen sovelluksen rakentamista. Ennakoitava asettelu auttaa sinua paikantamaan ohjaimet, mallit ja nรคkymรคt nopeasti, korjaamaan reititysongelmia ja perehdyttรคmรครคn uusia tiimin jรคseniรค nopeammin. Tรคmรค opetusohjelma kattaa klassisen CodeIgniter 3 -rakenne, jota kรคytetรครคn edelleen laajalti, ja se selventรครค myรถs keskeisiรค eroja, joita kohtaat CodeIgniter 4.x, joka esittelee app/-, public/- ja writable/-kansiot erillisinรค ylimmรคn tason kansioina.

Mikรค on CodeIgniterin tiedosto- ja hakemistorakenne?

CodeIgniter-tiedostorakenne on kansioiden ja PHP-tiedostojen oletusjรคrjestys, jonka kehys toimitetaan lataamisen tai asentamisen jรคlkeen. Se erottaa sovelluslogiikan kehyksen ytimestรค, pitรครค composer-riippuvuudet erillรครคn ja paljastaa yhden aloituspisteen index.php-tiedoston kautta. Seuraava kuva nรคyttรครค tiedostorakenteen CodeSytytin:

CodeIgniterin tiedosto-/kansio-/hakemistorakenne
CodeIgniterin tiedosto-/kansio-/hakemistorakenne

Tรคssรค on yksinkertaistettu hakemistopuu tuoreelle CodeSytyttimen 3 asennus:

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

Ylimmรคn tason kansioiden selitys

Katsotaanpa nyt yllรค olevia tiedostoja CodeSytyttimen rakenne:

  • hakemus โ€“ tรคmรค on hakemisto, joka sisรคltรครค sovelluslogiikkasi. Kaikki sovelluskoodisi sijaitsee tรคssรค hakemistossa.
  • jรคrjestelmรค โ€“ Tรคmรค kansio sisรคltรครค kehyksen ydintiedostot. Ei ole suositeltavaa tehdรค muutoksia tรคhรคn hakemistoon tai laittaa omaa sovelluskoodiasi tรคhรคn hakemistoon.
  • kรคyttรถohjeet โ€“ tรคmรค hakemisto sisรคltรครค kรคyttรถoppaan Codesytytin.
  • myyjรค โ€“ tรคmรค hakemisto sisรคltรครค composer-pakettien lรคhdekoodia. Muut tรคhรคn hakemistoon liittyvรคt tiedostot ovat composer.json ja composer.lock.
  • index.php โ€“ tรคmรค on sovelluksen sisรครคntulokohta.

CodeIgniter-sovelluksen alihakemistot

Tarkastellaan nyt hakemistoja tarkemmin. Kuten mainittiin, sovellushakemisto sisรคltรครค projektikoodisi. Tรคssรค osiossa tarkastelemme sovellushakemiston sisรคisiรค alihakemistoja. CodeSytyttimen hakemistorakenne:

  • kรคtkรถ โ€“ tallentaa tuloste- ja tietokannan vรคlimuistikirjastojen luomat vรคlimuistissa olevat tiedostot.
  • config โ€“ sรคilyttรครค mรครคritystiedostot, kuten database.php, routes.php ja autoload.php.
  • ohjaimet โ€“ kaikki sovellusohjaimet mรครคritellรครคn tรคssรค ja ne on yhdistetty URL segmenteistรค toimintoihin.
  • ydin โ€“ sisรคltรครค mukautettuja ydinluokkia, jotka laajentavat jรคrjestelmรคtiedostoja. Jos esimerkiksi luot perusohjaimen, jota muiden ohjainten tulisi laajentaa, sijoitat sen tรคhรคn hakemistoon.
  • auttajia โ€“ tรคmรค hakemisto CodeIgniter-kansiorakennetta kรคytetรครคn kรคyttรคjรคn mรครคrittรคmiin apufunktioihin.
  • koukut โ€“ kรคytetรครคn CI-kansiorakenteen mukautetuille koukkuille, jotka kรคynnistyvรคt kehyksen suoritussyklin aikana.
  • Kieli โ€“ kรคytetรครคn kielitiedostojen tallentamiseen sovelluksille, jotka kรคyttรคvรคt useampaa kuin yhtรค kieltรค.
  • kirjastot โ€“ kรคytetรครคn mukautettujen kirjastojen tallentamiseen.
  • lokit โ€“ sovelluksen lokitiedostot tallennetaan tรคhรคn hakemistoon.
  • mallit โ€“ kaikki sovellusmallit tulee mรครคritellรค tรคhรคn hakemistoon.
  • kolmas osapuoli โ€“ tรคtรค kรคytetรครคn sinun tai muiden kehittรคjien luomiin mukautettuihin paketteihin.
  • nรคkymรคt โ€“ sovellusnรคkymรคt menevรคt tรคhรคn hakemistoon.

Tรคssรค on esimerkki sovelluksen alihakemistopuusta:

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

CodeSytytysjรคrjestelmรคn alihakemistot

Tarkastellaan nyt CI-tiedostorakenteen jรคrjestelmรคn alihakemistoja. Muista, ettรค kehyksen lรคhdekoodi sijaitsee tรครคllรค, joten รคlรค tee mitรครคn muutoksia tรคmรคn hakemiston tiedostoihin.

  • ydin โ€“ Tรคmรค on kuin sen sydรคn CodeIgniter-kehysKaikki kehyksen muodostavat ydintiedostot sijaitsevat tรครคllรค. Jos haluat laajentaa ydintiedoston toiminnallisuutta, sinun on luotava mukautettu ydintiedosto sovellushakemistoon. Sen jรคlkeen voit ohittaa tai lisรคtรค uusia toimintoja haluamallasi tavalla. ร„lรค koskaan tee muutoksia suoraan tรคnne.
  • tietokanta โ€“ tietokannan ajurit, vรคlimuisti ja muut tietokannan toimintoihin tarvittavat tiedostot lรถytyvรคt tรครคltรค.
  • kirjasimet โ€“ Kuten nimestรค voi pรครคtellรค, tรคmรค hakemisto sisรคltรครค fontteja ja tietoa fonteista.
  • auttajia โ€“ tรคssรค hakemistossa CodeIgniter-rakennekansio sisรคltรครค valmiita apufunktioita.
  • Kieli โ€“ sisรคltรครค kehyksen kรคyttรคmiรค kielitiedostoja.
  • kirjastot โ€“ sisรคltรครค lรคhdekooditiedostot eri kirjastoille, jotka tulevat mukana CodeSytytin laatikosta otettuna.

Jรคrjestelmรคkansion asettelu nรคyttรครค tรคltรค:

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

CodeIgniter user_guide -hakemisto

Tรคmรค hakemisto toimii oppaana, kun haluat ymmรคrtรครค CodeIgniter-rajapinta. Tรคtรค hakemistoa ei tule ladata, kun sovellusta otetaan kรคyttรถรถn tuotantoympรคristรถssรค, koska se lisรครค kokoa ja paljastaa dokumentaatiota, jolla ei ole paikkaa live-palvelimella.

CodeSytyttimien toimittajahakemisto

Tรคmรค hakemisto sisรคltรครค composerin kautta asennettavien pakettien lรคhdekooditiedostot. Hakemiston tiedostot tulee jรคttรครค sellaisiksi kuin ne ovat, eikรค niihin tule tehdรค muutoksia. Toisin kuin user_guide-hakemisto, tรคmรค hakemisto tulee ladata, jos kรคytรคt sovelluksessasi composer-paketteja.

index.php-tiedosto

Index.php-tiedosto kohdassa CodeIgniter-tiedostorakenne sisรคltรครค kรคynnistyskoodin, joka mรครคrittelee ympรคristรถn, polut ja virheraportoinnin ennen ohjauksen luovuttamista frameworkille. Tรคmรค tiedosto sijaitsee juurihakemistossa ja toimii etuohjaimena jokaiselle saapuvalle HTTP-pyynnรถlle.

Miten CodeIgniter 4 muuttaa rakennetta

CodeIgniter 4.x jรคrjesti asettelun uudelleen parantaakseen turvallisuutta ja PSR-4:n automaattista latautumista. Yhden sovelluskansion sijaan nรคet nyt kolme ylimmรคn tason kansiota, jotka erottavat vastuualueet tarkemmin:

  • sovellus/ โ€“ vastaa vanhempaa sovellusta/kansiota, joka sisรคltรครค ohjaimet, mallit, nรคkymรคt, kokoonpanot, suodattimet ja kirjastot.
  • julkinen/ โ€“ ainoa verkossa nรคkyvรค kansio, joka sisรคltรครค index.php-tiedoston sekรค CSS-, JS- ja kuvasisรคltรถsi.
  • kirjoitettava/ โ€“ tallentaa vรคlimuistin, lokit, istunnot ja lataukset, jotka kehyksen on kirjoitettava suorituksen aikana.
  • jรคrjestelmรค/ โ€“ sisรคltรครค edelleen viitekehyksen ytimen, nimitilaa asetellaan CodeSytytin\.
  • myyjรค / โ€“ composer-paketit, joiden rooli on identtinen CI 3:n kanssa.
// CodeIgniter 4 root layout
project-root/
โ”œโ”€โ”€ app/
โ”œโ”€โ”€ public/
โ”œโ”€โ”€ writable/
โ”œโ”€โ”€ system/
โ”œโ”€โ”€ vendor/
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ composer.json
โ”œโ”€โ”€ env
โ””โ”€โ”€ spark

Jos aloitat tรคnรครคn uuden projektin, CodeIgniter 4 on suositeltu versio. Jos yllรคpidรคt vanhempaa koodikantaa, yllรค kuvattu CI 3 -rakenne vastaa levyllรค nรคkyvรครค rakennetta.

Tyรถskentely CodeSytyttimen rakenne pรคivittรคin

Kun tiedรคt, missรค kukin kansio sijaitsee, yleisistรค tehtรคvistรค tulee suoraviivaisia. Luo uusi ohjain kansioon application/controllers/ (tai app/Controllers/ CI 4:ssรค), yhdistรค se reittiin config/routes.php-tiedostossa, rakenna malli kansioon models/ ja renderรถi nรคkymรคtiedoston tuloste kansioon views/. Pidรค kokoonpano kansioon config/, pudota uudelleenkรคytettรคvรครค koodia apuohjelmiin/ tai kirjastoihin/ ja anna composerin hallita kaikkea vendor/-kansion sisรคllรค. Pidรค kiinni tรคstรค kurinalaisuudesta, niin projektisi on helppo navigoida myรถs sen kasvaessa.

UKK

Sovelluskansio sisรคltรครค projektikoodisi, kuten ohjaimet, mallit ja nรคkymรคt, ja voit muokata sitรค vapaasti. Jรคrjestelmรคkansio sisรคltรครค kehyksen ytimen, eikรค sen tiedostoja tule koskaan muokata, koska kehyksen pรคivitykset korvaavat ne.

In CodeIgniter 4:ssรค sijoitat uudet ohjaimet app/Controllers/-kansioon kรคyttรคen PSR-4-nimiavaruuksia. Yhdistรค tiedostonimi luokan nimeen ja rekisterรถi sitten reitti app/Config/Routes.php-tiedostoon, jotta kehys voi lรคhettรครค pyyntรถjรค siihen.

Ei. user_guide-kansio on vain paikallista dokumentaatiota. Poista se tuotantokรคyttรถรถnotoista, jotta pienennรคt jalanjรคlkeรค ja vรคltรคt kehysviitemateriaalin paljastumisen live-palvelimelle. Toimittajan ja jรคrjestelmรคn kansiot on sitรค vastoin otettava kรคyttรถรถn.

Index.php-tiedosto on etuohjain. Se asettaa ympรคristรถn, mรครคrittelee polkuvakiot ja lataa kehyksen kรคynnistyskรคskyn, jotta jokainen saapuva pyyntรถ reititetรครคn sen kautta. CodeSytytysputki ennen ohjaimiesi ja nรคkymiesi saavuttamista.

Kyllรค. Tekoรคlytyรถkalut, kuten GitHub Copilot, Cursor ja Claude, voivat sijoittaa ohjaimia, malleja ja nรคkymiรค oikeisiin kansioihin, selittรครค tuntemattomia tiedostoja ja merkitรค vรครคrin sijoitetut luokat. Ne ovat erityisen hyรถdyllisiรค, kun vaihdat tiedostojen vรคlillรค. CodeSytytin 3 ja CodeSytytin 4 asettelua.

Tekoรคlyavustajat selittรคvรคt, miten ohjaimet kรคsittelevรคt pyyntรถjรค, mallit hallitsevat dataa ja nรคkymรคt renderรถivรคt tulostetta, ja luovat sitten vastaavat tiedostot oikeisiin kansioihin. He voivat myรถs tarkistaa koodisi, ehdottaa uudelleenjรคrjestelyjรค ja vahvistaa MVC-erottelua, kun rakennat todellistaโ€ฆ CodeSytytinprojektit.

Tiivistรค tรคmรค viesti seuraavasti: