CodeStruktura folderów, plików i katalogów Igniter
⚡ Inteligentne podsumowanie
CodeIgniter organizuje projekt PHP w przewidywalnych folderach dla logiki aplikacji, plików systemowych frameworka, pakietów dostawcy Composer i pojedynczego skryptu wejściowego, dzięki czemu początkujący mogą szybko zlokalizować kod, a średnio zaawansowani programiści mogą skalować czystą strukturę MVC.

Zrozumienie struktury plików w CodeIgniter jest niezbędny przed stworzeniem jakiejkolwiek prawdziwej aplikacji. Przewidywalny układ pomaga szybko zlokalizować kontrolery, modele i widoki, debugować problemy z routingiem i szybciej wdrażać nowych członków zespołu. Ten samouczek obejmuje klasyczne CodeStruktura Igniter 3, która jest nadal szeroko stosowana, a także wyjaśnia kluczowe różnice, które napotkasz w CodeIgniter 4.x, w którym wprowadzono oddzielne foldery najwyższego poziomu: app/, public/ i writable/.
Co to jest CodeJaka jest struktura plików i katalogów Ignitera?
CodeStruktura plików Ignitera to domyślny układ folderów i plików PHP, który framework dostarcza po pobraniu lub zainstalowaniu. Oddziela ona logikę aplikacji od jądra frameworka, utrzymuje odizolowane zależności Composera i udostępnia pojedynczy punkt wejścia poprzez plik index.php. Poniższy rysunek przedstawia strukturę plików w CodeZapalnik:
Oto uproszczone drzewo katalogów dla nowego CodeInstalacja Igniter 3:
// CodeIgniter 3 root layout project-root/ ├── application/ ├── system/ ├── user_guide/ ├── vendor/ ├── composer.json ├── composer.lock └── index.php
Wyjaśnienie folderów najwyższego poziomu
Przyjrzyjmy się teraz powyższym plikom CodeStruktura zapłonnika:
- aplikacja – to katalog, w którym będzie znajdować się logika Twojej aplikacji. Cały kod Twojej aplikacji będzie znajdował się w tym katalogu.
- system – ten folder zawiera podstawowe pliki frameworka. Nie zaleca się wprowadzania zmian w tym katalogu ani umieszczania w nim własnego kodu aplikacji.
- przewodnik_użytkownika – w tym katalogu znajduje się instrukcja obsługi dla CodeZapalnik.
- sprzedawca – ten katalog zawiera kod źródłowy pakietów Composer. Pozostałe pliki powiązane z tym katalogiem to composer.json i composer.lock.
- index.php – to jest punkt wejścia do aplikacji.
CodePodkatalogi aplikacji Igniter
Przyjrzyjmy się teraz katalogom bardziej szczegółowo. Jak wspomniano, katalog aplikacji zawiera kod projektu. W tej sekcji przyjrzymy się wewnętrznym podkatalogom w CodeStruktura katalogów Ignitera:
- Pamięć podręczna – przechowuje pliki buforowane wygenerowane przez biblioteki wyjściowe i buforujące bazę danych.
- config – przechowuje pliki konfiguracyjne, takie jak database.php, routes.php i autoload.php.
- sterowniki – wszystkie kontrolery aplikacji są tutaj definiowane i mapowane URL segmenty do działań.
- core – zawiera niestandardowe klasy rdzenia, które rozszerzają pliki systemowe. Na przykład, jeśli utworzysz kontroler bazowy, który powinien być rozszerzany przez inne kontrolery, umieścisz go w tym katalogu.
- pomocnicy – ten katalog CodeStruktura folderów Ignitera jest używana dla pomocniczych funkcji zdefiniowanych przez użytkownika.
- haczyki – używane w przypadku niestandardowych haków w strukturze folderów CI, które są uruchamiane w trakcie cyklu wykonywania struktury.
- język – służy do przechowywania plików językowych dla aplikacji, które używają więcej niż jednego języka.
- biblioteki – służy do przechowywania niestandardowych bibliotek.
- dzienniki – pliki dziennika aplikacji są przechowywane w tym katalogu.
- modele – wszystkie modele aplikacji powinny być zdefiniowane w tym katalogu.
- strona trzecia – używane w przypadku niestandardowych pakietów, które stworzyłeś Ty lub inni programiści.
- widoki – widoki aplikacji trafiają do tego katalogu.
Oto przykład drzewa podkatalogów aplikacji:
// application/ subdirectories application/ ├── cache/ ├── config/ ├── controllers/ ├── core/ ├── helpers/ ├── hooks/ ├── language/ ├── libraries/ ├── logs/ ├── models/ ├── third_party/ └── views/
CodePodkatalogi systemu Igniter
Przyjrzyjmy się teraz podkatalogom systemowym w strukturze plików CI. Pamiętaj, że to właśnie tam znajduje się kod źródłowy frameworka, dlatego nie wprowadzaj żadnych zmian w plikach w tym katalogu.
- core – to jest jak serce CodeFramework IgniterWszystkie pliki rdzenia, z których składa się framework, znajdują się tutaj. Aby rozszerzyć funkcjonalność pliku rdzenia, należy utworzyć niestandardowy plik rdzenia w katalogu aplikacji. Następnie można nadpisać lub dodać nowe zachowanie. Nigdy nie należy wprowadzać zmian bezpośrednio w tym miejscu.
- baza danych – tutaj znajdują się sterowniki baz danych, pamięć podręczna i inne pliki niezbędne do operacji na bazach danych.
- czcionki – jak sama nazwa wskazuje, w tym katalogu znajdują się czcionki i informacje dotyczące czcionek.
- pomocnicy – ten katalog w CodeFolder struktury Igniter zawiera pomocnicze funkcje dostępne od razu.
- język – zawiera pliki językowe używane przez framework.
- biblioteki – zawiera pliki źródłowe dla różnych bibliotek, które są dołączone CodeZapłonnik gotowy do użycia.
Układ folderów systemowych wygląda następująco:
// system/ subdirectories system/ ├── core/ ├── database/ ├── fonts/ ├── helpers/ ├── language/ └── libraries/
CodeKatalog podręcznika użytkownika Igniter
Ten katalog służy jako przewodnik referencyjny, gdy chcesz zrozumieć CodeAPI Igniter. Nie należy przesyłać tego katalogu podczas wdrażania aplikacji w środowisku produkcyjnym, ponieważ zwiększa to rozmiar i udostępnia dokumentację, która nie ma miejsca na serwerze produkcyjnym.
CodeKatalog dostawców Igniter
Ten katalog zawiera pliki źródłowe pakietów instalowanych za pomocą programu Composer. Pliki w tym katalogu należy pozostawić bez zmian i nie wprowadzać w nich żadnych zmian. W przeciwieństwie do katalogu user_guide, ten katalog należy przesłać, jeśli w aplikacji używasz pakietów Composer.
Plik index.php
Plik index.php w CodeStruktura plików Ignitera zawiera kod rozruchowy, który definiuje środowisko, ścieżki i raportowanie błędów przed przekazaniem kontroli do frameworka. Plik ten znajduje się w katalogu głównym i działa jako kontroler frontowy dla każdego przychodzącego żądania HTTP.
W jaki sposób CodeIgniter 4 zmienia strukturę
CodeW Igniter 4.x zmieniono układ, aby poprawić bezpieczeństwo i automatyczne ładowanie PSR-4. Zamiast pojedynczego folderu aplikacji, teraz widzisz trzy foldery najwyższego poziomu, które dokładniej rozdzielają problemy:
- aplikacja / – odpowiednik starszego folderu application/, w którym znajdują się Kontrolery, Modele, Widoki, Konfiguracja, Filtry i Biblioteki.
- publiczny/ – jedyny folder dostępny w sieci, zawierający plik index.php oraz zasoby CSS, JS i obrazy.
- zapisywalny/ – przechowuje pamięć podręczną, logi, sesje i przesyłane dane, które framework musi zapisać w czasie wykonywania.
- system/ – nadal zawiera rdzeń struktury, w przestrzeni nazw CodeZapalnik\.
- sprzedawca/ – pakiety kompozytorskie, identyczne w roli jak CI 3.
// CodeIgniter 4 root layout project-root/ ├── app/ ├── public/ ├── writable/ ├── system/ ├── vendor/ ├── tests/ ├── composer.json ├── env └── spark
Jeśli dziś rozpoczynasz nowy projekt, CodeZalecaną wersją jest Igniter 4. Jeśli utrzymujesz starszą bazę kodu, struktura CI 3 opisana powyżej będzie zgodna z tą, którą widzisz na dysku.
Praca z CodeStruktura zapłonnika na co dzień
Gdy wiesz, gdzie znajduje się każdy folder, typowe zadania stają się proste. Utwórz nowy kontroler w katalogu application/controllers/ (lub app/Controllers/ w CI 4), dopasuj go do trasy w pliku config/routes.php, zbuduj model w katalogu models/ i wyrenderuj dane wyjściowe z pliku widoku w katalogu views/. Zachowaj konfigurację w katalogu config/, umieść kod wielokrotnego użytku w katalogu helpers/ lub libraries/ i pozwól kompozytorowi zarządzać wszystkim w katalogu vendor/. Trzymaj się tej zasady, a Twój projekt pozostanie łatwy w nawigacji, nawet gdy będzie się rozrastał.
