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.

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