CodeStruktura mapa, datoteka i direktorija Ignitera
โก Pametni saลพetak
CodeIgniter organizira PHP projekt u predvidljive mape za logiku aplikacije, sistemske datoteke okvira, pakete dobavljaฤa sastavljaฤa i skriptu s jednim unosom, tako da poฤetnici mogu brzo pronaฤi kod, a srednje napredni programeri mogu skalirati ฤistu MVC strukturu.

Razumijevanje strukture datoteka u CodeIgniter je kljuฤan prije nego ลกto izradite bilo koju stvarnu aplikaciju. Predvidljiv raspored pomaลพe vam da brzo pronaฤete kontrolere, modele i prikaze, otklonite probleme s usmjeravanjem i brลพe ukljuฤite nove ฤlanove tima. Ovaj vodiฤ pokriva klasiฤne... CodeStruktura Ignitera 3 koja se joลก uvijek ลกiroko koristi, a takoฤer pojaลกnjava kljuฤne razlike s kojima ฤete se susresti CodeIgniter 4.x, koji uvodi app/, public/ i writable/ kao odvojene mape najviลกe razine.
ล to je CodeStruktura datoteke i direktorija Ignitera?
The CodeStruktura datoteka Ignitera je zadani raspored mapa i PHP datoteka s kojima se framework isporuฤuje nakon ลกto ga preuzmete ili instalirate. Odvaja logiku vaลกe aplikacije od jezgre frameworka, izolira ovisnosti skladatelja i otkriva jednu ulaznu toฤku putem index.php. Sljedeฤa slika prikazuje strukturu datoteka u CodeUpaljaฤ:
Evo pojednostavljenog stabla direktorija za svjeลพi CodeUgradnja upaljaฤa 3:
// CodeIgniter 3 root layout project-root/ โโโ application/ โโโ system/ โโโ user_guide/ โโโ vendor/ โโโ composer.json โโโ composer.lock โโโ index.php
Objaลกnjenje mapa najviลกe razine
Pogledajmo sada gore navedene datoteke u CodeStruktura upaljaฤa:
- primjena โ ovo je direktorij koji ฤe sadrลพavati logiku vaลกe aplikacije. Sav vaลก aplikacijski kod bit ฤe sadrลพan u ovom direktoriju.
- sistem โ ova mapa sadrลพi osnovne datoteke okvira. Ne preporuฤa se raditi promjene u ovom direktoriju ili stavljati vlastiti kod aplikacije u ovaj direktorij.
- korisniฤki vodiฤ โ ovaj direktorij sadrลพi korisniฤki priruฤnik za Codeupaljaฤ.
- prodavaฤ โ ovaj direktorij sadrลพi izvorni kod paketa composer-a. Ostale datoteke povezane s ovim direktorijem su composer.json i composer.lock.
- index.php โ ovo je ulazna toฤka u aplikaciju.
CodePoddirektorije aplikacije Igniter
Pogledajmo sada detaljnije direktorije. Kao ลกto je spomenuto, direktorij aplikacije sadrลพi vaลก projektni kod. U ovom odjeljku pogledat ฤemo interne poddirektorije u CodeStruktura direktorija Ignitera:
- predmemorija โ pohranjuje predmemorirane datoteke generirane bibliotekama za predmemoriranje izlaza i baze podataka.
- config โ ฤuva konfiguracijske datoteke kao ลกto su database.php, routes.php i autoload.php.
- kontroleri โ svi kontroleri aplikacija su ovdje definirani i mapirani URL segmente do akcija.
- srลพ โ sadrลพi prilagoฤene osnovne klase koje proลกiruju sistemske datoteke. Na primjer, ako stvorite osnovni kontroler koji bi drugi kontroleri trebali proลกiriti, smjestili biste ga u ovaj direktorij.
- pomoฤnici โ ovaj imenik CodeStruktura mape Igniter koristi se za korisniฤki definirane pomoฤne funkcije.
- kuke โ koristi se za prilagoฤene kuke u strukturi CI mape koje se aktiviraju tijekom ciklusa izvrลกavanja okvira.
- jezik โ koristi se za pohranjivanje jeziฤnih datoteka za aplikacije koje koriste viลกe od jednog jezika.
- knjiลพnice โ koristi se za pohranu prilagoฤenih biblioteka.
- drva โ datoteke dnevnika aplikacije pohranjuju se u ovom direktoriju.
- modeli โ svi modeli aplikacija trebaju biti definirani u ovom direktoriju.
- Treฤa strana โ ovo se koristi za prilagoฤene pakete koje ste vi ili drugi programeri kreirali.
- pregleda โ pogledi aplikacije idu u ovaj direktorij.
Evo primjera stabla poddirektorija aplikacije:
// application/ subdirectories application/ โโโ cache/ โโโ config/ โโโ controllers/ โโโ core/ โโโ helpers/ โโโ hooks/ โโโ language/ โโโ libraries/ โโโ logs/ โโโ models/ โโโ third_party/ โโโ views/
CodePoddirektorije sustava za paljenje
Pogledajmo sada sistemske poddirektorije u strukturi CI datoteka. Imajte na umu da se ovdje nalazi izvorni kod okvira, stoga nemojte mijenjati datoteke u ovom direktoriju.
- srลพ โ ovo je poput srca CodeOkvir za paljenjeSve osnovne datoteke koje ฤine okvir nalaze se ovdje. Ako ลพelite proลกiriti funkcionalnost osnovne datoteke, morate stvoriti prilagoฤenu osnovnu datoteku u direktoriju aplikacije. Nakon toga moลพete nadjaฤati ili dodati novo ponaลกanje koje ลพelite. Nikada ne biste trebali izravno ovdje unositi promjene.
- baza podataka โ ovdje se nalaze upravljaฤki programi baze podataka, predmemorija i ostale datoteke potrebne za rad baze podataka.
- fontovi โ kao ลกto i samo ime govori, ovaj direktorij sadrลพi fontove i informacije vezane uz fontove.
- pomoฤnici โ ovaj direktorij u CodeMapa strukture Ignitera sadrลพi pomoฤne funkcije koje dolaze odmah nakon instalacije.
- jezik โ sadrลพi jeziฤne datoteke koje koristi okvir.
- knjiลพnice โ sadrลพi izvorne datoteke za razne biblioteke koje dolaze s CodeUpaljaฤ odmah po vaฤenju iz kutije.
Raspored sistemskih mapa izgleda ovako:
// system/ subdirectories system/ โโโ core/ โโโ database/ โโโ fonts/ โโโ helpers/ โโโ language/ โโโ libraries/
CodeImenik korisniฤkih priruฤnika za Igniter
Ovaj imenik sluลพi kao referentni vodiฤ kada ลพelite razumjeti CodeIgniter API. Ne biste trebali prenositi ovaj direktorij prilikom implementacije aplikacije u produkciju, jer poveฤava veliฤinu i otkriva dokumentaciju koja nema mjesta na aktivnom posluลพitelju.
CodeImenik dobavljaฤa upaljaฤa
Ovaj direktorij sadrลพi izvorne datoteke za pakete koje instalirate putem composera. Datoteke u ovom direktoriju treba ostaviti kakve jesu i ne treba ih mijenjati. Za razliku od direktorija user_guide, ovaj direktorij treba prenijeti ako u svojoj aplikaciji koristite composer pakete.
Datoteka index.php
Datoteka index.php u CodeStruktura datoteke Igniter sadrลพi bootstrap kod koji definira okruลพenje, putanje i izvjeลกtavanje o pogreลกkama prije predaje kontrole frameworku. Ova se datoteka nalazi u korijenskom direktoriju i djeluje kao prednji kontroler za svaki dolazni HTTP zahtjev.
Kako CodeIgniter 4 mijenja strukturu
CodeIgniter 4.x je reorganizirao raspored kako bi poboljลกao sigurnost i automatsko uฤitavanje PSR-4. Umjesto jedne mape aplikacije, sada vidite tri mape najviลกe razine koje stroลพe odvajaju zadatke:
- aplikacija / โ ekvivalent starijoj aplikaciji/mapi, koja sadrลพi kontrolere, modele, prikaze, konfiguraciju, filtere i biblioteke.
- javnost/ โ jedina mapa izloลพena webu, koja sadrลพi index.php i vaลกe CSS, JS i slikovne elemente.
- pisivo/ โ pohranjuje predmemoriju, logove, sesije i prijenose koje okvir treba zapisati tijekom izvoฤenja.
- sustav/ โ joลก uvijek sadrลพi jezgru okvira, imenski prostor pod CodeUpaljaฤ\.
- prodavaฤ / โ paketi za slaganje, identiฤne uloge kao CI 3.
// CodeIgniter 4 root layout project-root/ โโโ app/ โโโ public/ โโโ writable/ โโโ system/ โโโ vendor/ โโโ tests/ โโโ composer.json โโโ env โโโ spark
Ako danas zapoฤinjete novi projekt, CodeIgniter 4 je preporuฤena verzija. Ako odrลพavate stariju kodnu bazu, CI 3 struktura opisana gore odgovarat ฤe onome ลกto vidite na disku.
Rad s CodeStruktura upaljaฤa iz dana u dan
Nakon ลกto znate gdje se nalazi svaka mapa, uobiฤajeni zadaci postaju jednostavni. Izradite novi kontroler pod application/controllers/ (ili app/Controllers/ u CI 4), uskladite ga s rutom u config/routes.php, izgradite model pod models/ i renderirajte izlaz iz datoteke prikaza u views/. Konfiguraciju drลพite u config/, kod za viลกekratnu upotrebu ubacite u helpers/ ili libraries/ i neka composer upravlja svime unutar vendor/. Drลพite se ove discipline i vaลก ฤe projekt ostati jednostavan za navigaciju ฤak i kako raste.
