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.

  • ๐Ÿ“ Mapa aplikacije: Sadrลพi vaลกe kontrolere, modele, prikaze, konfiguraciju, predmemoriju, pomoฤ‡ne programe, kuke, jezik, biblioteke, logove i pakete treฤ‡ih strana.
  • ๐Ÿงฉ Sistemska mapa: Pohranjuje jezgru okvira, upravljaฤke programe baze podataka, fontove, pomoฤ‡ne programe, jezik i ugraฤ‘ene biblioteke; nemojte izravno ureฤ‘ivati โ€‹โ€‹ove datoteke.
  • ๏ธ Ulazna toฤka: Korijen index.php pokreฤ‡e framework, postavlja putanje i usmjerava svaki HTTP zahtjev kroz prednji kontroler.
  • โœ… Razlike u verzijama: CodeIgniter 3 koristi aplikaciju/ i sustav/, dok CodeIgniter 4 uvodi mape app/, public/ i writable/ za stroลพe odvajanje.
  • ๐Ÿงช Prodavatelj i korisniฤki priruฤnik: Vendor pohranjuje pakete za sastavljanje koje implementirate, dok je user_guide lokalna dokumentacija koju biste trebali iskljuฤiti s produkcijskih posluลพitelja.

CodeMapa za upaljaฤ

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ฤ:

CodeStruktura datoteka/mapa/direktorija Ignitera
CodeStruktura datoteka/mapa/direktorija Ignitera

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.

Pitanja i odgovori

Mapa aplikacije sadrลพi vaลก projektni kod kao ลกto su kontroleri, modeli i prikazi, te ga moลพete slobodno ureฤ‘ivati. Mapa sustava sadrลพi jezgru okvira i nikada ne biste trebali mijenjati njezine datoteke jer ฤ‡e ih nadogradnje okvira prebrisati.

In CodeU Igniteru 4 nove kontrolere smjeลกtate u mapu app/Controllers/ koristeฤ‡i PSR-4 imenske prostore. Uskladite naziv datoteke s nazivom klase, a zatim registrirajte rutu u app/Config/Routes.php kako bi okvir mogao slati zahtjeve prema njoj.

Ne. Mapa user_guide je samo lokalna dokumentacija. Iskljuฤite je iz produkcijskih implementacija kako biste smanjili utjecaj i izbjegli izlaganje referentnog materijala okvira na aktivnom posluลพitelju. Nasuprot tome, mape dobavljaฤa i sustava moraju se implementirati.

Datoteka index.php je prednji kontroler. Ona postavlja okruลพenje, definira konstante putanje i uฤitava bootstrap okvira tako da se svaki dolazni zahtjev usmjerava kroz CodeCjevovod paljenja prije dosezanja vaลกih kontrolera i prikaza.

Da. AI alati poput GitHub Copilota, Cursora i Claudea mogu postaviti kontrolere, modele i prikaze u ispravne mape, objasniti nepoznate datoteke i oznaฤiti pogreลกno postavljene klase. Posebno su korisni kada se prebacujete izmeฤ‘u CodeUpaljaฤ 3 i CodeRasporedi upaljaฤa 4.

AI asistenti objaลกnjavaju kako kontroleri obraฤ‘uju zahtjeve, modeli upravljaju podacima, a prikazi prikazuju izlaz, a zatim generiraju odgovarajuฤ‡e datoteke u ispravnim mapama. Takoฤ‘er mogu pregledati vaลก kod, predloลพiti refaktoriranje i pojaฤati MVC odvajanje dok gradite stvarne CodeProjekti zapaljivaฤa.

Saลพmite ovu objavu uz: