CodeIgniter mappa-, fájl- és könyvtárszerkezet
⚡ Okos összefoglaló
CodeAz Igniter egy PHP projektet kiszámítható mappákba rendez az alkalmazáslogika, a keretrendszer-fájlok, a zeneszerzői csomagok és egyetlen bejegyzést tartalmazó szkript számára, így a kezdők gyorsan megtalálhatják a kódot, a középhaladó fejlesztők pedig egy letisztult MVC struktúrát skálázhatnak.

A fájlszerkezet megértése CodeAz Igniter elengedhetetlen bármilyen valódi alkalmazás létrehozása előtt. A kiszámítható elrendezés segít gyorsan megtalálni a vezérlőket, modelleket és nézeteket, hibakeresni az útvonalproblémákat, és gyorsabban beilleszteni az új csapattagokat. Ez az oktatóanyag a klasszikus... CodeAz Igniter 3 struktúrája, amelyet még mindig széles körben alkalmaznak, és tisztázza a legfontosabb különbségeket is, amelyekkel találkozni fogsz CodeAz Igniter 4.x verziója, amely bemutatja az app/, public/ és writable/ mappákat különálló legfelső szintű mappákként.
Mi a CodeIgniter fájl- és könyvtárszerkezet?
Az CodeAz Igniter fájlszerkezete a mappák és PHP fájlok alapértelmezett elrendezése, amelyet a keretrendszer a letöltés vagy telepítés után tartalmaz. Ez elválasztja az alkalmazás logikáját a keretrendszer magjától, elszigetelten tartja a zeneszerző függőségeit, és egyetlen belépési pontot tesz elérhetővé az index.php fájlon keresztül. A következő kép a fájlszerkezetet mutatja be: CodeGyújtó:
Itt egy egyszerűsített könyvtárfa egy friss Code3. gyújtó telepítése:
// CodeIgniter 3 root layout project-root/ ├── application/ ├── system/ ├── user_guide/ ├── vendor/ ├── composer.json ├── composer.lock └── index.php
Legfelső szintű mappák ismertetése
Most pedig nézzük meg a fenti fájlokat CodeGyújtó szerkezete:
- alkalmazás – ez a könyvtár fogja tartalmazni az alkalmazás logikáját. Az összes alkalmazáskód ebben a könyvtárban lesz.
- rendszer – ez a mappa tartalmazza a keretrendszer alapfájljait. Nem tanácsos változtatásokat végrehajtani ebben a könyvtárban, vagy saját alkalmazáskódot helyezni ebbe a könyvtárba.
- használati útmutató – ez a könyvtár tartalmazza a felhasználói kézikönyvet CodeGyújtó.
- eladó – ez a könyvtár a composer csomagok forráskódját tartalmazza. A könyvtárhoz kapcsolódó egyéb fájlok a composer.json és a composer.lock.
- index.php – ez a belépési pont az alkalmazásba.
CodeIgniter alkalmazás alkönyvtárai
Most nézzük meg részletesebben a könyvtárakat. Ahogy említettük, az alkalmazáskönyvtár tartalmazza a projektkódot. Ebben a szakaszban a belső alkönyvtárakat fogjuk megvizsgálni a CodeIgniter könyvtárszerkezet:
- cache – a kimeneti és az adatbázis gyorsítótárazási könyvtárai által generált gyorsítótárazott fájlokat tárolja.
- config – megőrzi a konfigurációs fájlokat, például a database.php, routes.php és autoload.php.
- vezérlők – az összes alkalmazásvezérlő itt van definiálva és leképezve URL szegmensekből műveletekké.
- mag – olyan egyéni alaposztályokat tartalmaz, amelyek kiterjesztik a rendszerfájlokat. Például, ha létrehoz egy alapvezérlőt, amelyet más vezérlőknek ki kell terjeszteniük, akkor azt ebbe a könyvtárba kell helyeznie.
- segítők – ez a címtár a CodeAz Igniter mappastruktúráját a felhasználó által definiált segédfüggvényekhez használják.
- horgok – a CI mappastruktúrában található egyéni hookokhoz használatos, amelyek a keretrendszer végrehajtási ciklusa alatt aktiválódnak.
- nyelv – nyelvi fájlok tárolására szolgál olyan alkalmazásokhoz, amelyek egynél több nyelvet használnak.
- könyvtárak – egyénileg létrehozott könyvtárak tárolására szolgál.
- naplók – az alkalmazás naplófájljai ebben a könyvtárban tárolódnak.
- modellek – minden alkalmazásmodellt ebben a könyvtárban kell definiálni.
- harmadik fél – ezt az Ön vagy más fejlesztők által létrehozott egyéni csomagokhoz használják.
- nézetek – az alkalmazásnézetek ebbe a könyvtárba kerülnek.
Íme egy példa az alkalmazás alkönyvtárfájára:
// application/ subdirectories application/ ├── cache/ ├── config/ ├── controllers/ ├── core/ ├── helpers/ ├── hooks/ ├── language/ ├── libraries/ ├── logs/ ├── models/ ├── third_party/ └── views/
CodeGyújtórendszer alkönyvtárai
Most nézzük meg a CI fájlstruktúrájának rendszer alkönyvtárait. Ne feledjük, hogy itt található a keretrendszer forráskódja, ezért ne módosítsunk semmilyen fájlt ebben a könyvtárban.
- mag – ez olyan, mint a szíve CodeIgniter keretrendszerA keretrendszert alkotó összes alapfájl itt található. Ha ki szeretnéd bővíteni az alapfájl funkcionalitását, akkor létre kell hoznod egy egyéni alapfájlt az alkalmazás könyvtárában. Ezután felülbírálhatod vagy hozzáadhatsz új viselkedést. Soha ne végezz módosításokat közvetlenül itt.
- adatbázis – az adatbázis-illesztőprogramok, a gyorsítótár és az adatbázis-műveletekhez szükséges egyéb fájlok itt találhatók.
- betűtípusok – ahogy a neve is sugallja, ez a könyvtár betűtípusokat és betűtípusokkal kapcsolatos információkat tartalmaz.
- segítők – ez a könyvtár a CodeAz Igniter struktúra mappája a dobozból kivéve azonnal használható segédfüggvényeket tartalmazza.
- nyelv – a keretrendszer által használt nyelvi fájlokat tartalmazza.
- könyvtárak – tartalmazza a különféle, a programhoz tartozó könyvtárak forrásfájljait CodeGyújtó a dobozból kivéve.
A rendszermappa elrendezése így néz ki:
// system/ subdirectories system/ ├── core/ ├── database/ ├── fonts/ ├── helpers/ ├── language/ └── libraries/
CodeIgniter felhasználói_útmutató Könyvtár
Ez a címtár referenciaként szolgál, amikor meg szeretné érteni a CodeIgniter API. Ezt a könyvtárat nem szabad feltölteni az alkalmazás éles környezetben történő telepítésekor, mivel növeli a méretet, és olyan dokumentációt tesz elérhetővé, amelynek nincs helye egy éles szerveren.
CodeGyújtógyártói jegyzék
Ez a könyvtár a composer segítségével telepített csomagok forrásfájljait tartalmazza. A könyvtárban található fájlokat úgy kell hagyni, ahogy vannak, és nem szabad rajtuk változtatni. A user_guide könyvtárral ellentétben ezt a könyvtárat fel kell tölteni, ha composer csomagokat használsz az alkalmazásodban.
index.php fájl
Az index.php fájl a CodeAz Igniter fájlszerkezet tartalmazza a bootstrap kódot, amely meghatározza a környezetet, az elérési utakat és a hibajelentést, mielőtt átadná a vezérlést a keretrendszernek. Ez a fájl a gyökérkönyvtárban található, és minden bejövő HTTP kérés elsődleges vezérlőjeként működik.
Hogyan CodeAz Igniter 4 megváltoztatja a szerkezetet
CodeAz Igniter 4.x átszervezte az elrendezést a biztonság és a PSR-4 automatikus betöltésének javítása érdekében. Egyetlen alkalmazásmappa helyett most három legfelső szintű mappa látható, amelyek szigorúbban elkülönítik a feladatokat:
- app / – egyenértékű a régebbi alkalmazással/mappával, amely a Vezérlőket, Modelleket, Nézeteket, Konfigurációt, Szűrőket és Könyvtárakat tartalmazza.
- nyilvános/ – az egyetlen weben elérhető mappa, amely tartalmazza az index.php fájlt, valamint a CSS, JS és képi elemeket.
- írható/ – tárolja a gyorsítótárat, naplókat, munkameneteket és feltöltéseket, amelyeket a keretrendszernek futásidejűleg kell írnia.
- rendszer/ – továbbra is tartalmazza a keretrendszer magját, névtérrel alatta CodeGyújtó\.
- eladó / – zeneszerző csomagok, szerepüket tekintve megegyeznek a CI 3-mal.
// CodeIgniter 4 root layout project-root/ ├── app/ ├── public/ ├── writable/ ├── system/ ├── vendor/ ├── tests/ ├── composer.json ├── env └── spark
Ha ma új projektbe kezdesz, CodeAz Igniter 4 az ajánlott verzió. Ha régebbi kódbázist tartasz karban, a fent leírt CI 3 struktúra megegyezik a lemezen látottakkal.
Együttműködés a CodeGyújtószerkezet mindennapi használatra
Ha már tudod, hogy az egyes mappák hol találhatók, a gyakori feladatok egyszerűvé válnak. Hozz létre egy új vezérlőt az application/controllers/ (vagy CI 4-ben az app/Controllers/) alatt, párosítsd egy útvonallal a config/routes.php fájlban, építs egy modellt a models/ alatt, és rendereld a kimenetet egy view fájlból a views/ könyvtárban. Tartsd meg a konfigurációt a config/ könyvtárban, vidd az újrafelhasználható kódot a helpers/ vagy libraries/ könyvtárakba, és hagyd, hogy a composer kezeljen mindent a vendor/ könyvtáron belül. Ragaszkodj ehhez a fegyelemhez, és a projekted könnyen navigálható marad majd, még akkor is, ha növekszik.
