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.

  • 📁 Folder aplikacji: Przechowuje kontrolery, modele, widoki, konfigurację, pamięć podręczną, pomocniki, haki, język, biblioteki, logi i pakiety innych firm.
  • 🧩 Folder systemowy: Przechowuje rdzeń infrastruktury, sterowniki bazy danych, czcionki, funkcje pomocnicze, język i wbudowane biblioteki. Nie należy edytować tych plików bezpośrednio.
  • ⚙️ Punkt wejścia: Plik główny index.php uruchamia framework, ustawia ścieżki i kieruje każde żądanie HTTP przez kontroler frontowy.
  • Różnice w wersjach: CodeIgniter 3 używa application/ i system/, podczas gdy CodeIgniter 4 wprowadza foldery app/, public/ i writable/ w celu ściślejszego oddzielenia ich od siebie.
  • 🧪 Dostawca i podręcznik użytkownika: Dostawca przechowuje wdrażane przez Ciebie pakiety kompozytorskie, natomiast user_guide to lokalna dokumentacja, którą należy wykluczyć z serwerów produkcyjnych.

CodeFolder Igniter

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:

CodeStruktura plików/folderów/katalogów Igniter
CodeStruktura plików/folderów/katalogów Igniter

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

FAQ

W folderze aplikacji znajduje się kod projektu, taki jak kontrolery, modele i widoki, który można swobodnie edytować. W folderze systemowym znajduje się rdzeń frameworka i nigdy nie należy modyfikować jego plików, ponieważ aktualizacje frameworka spowodują ich nadpisanie.

In CodeW Igniter 4 nowe kontrolery umieszcza się w folderze app/Controllers/, używając przestrzeni nazw PSR-4. Dopasuj nazwę pliku do nazwy klasy, a następnie zarejestruj trasę w pliku app/Config/Routes.php, aby framework mógł wysyłać do niej żądania.

Nie. Folder user_guide zawiera wyłącznie lokalną dokumentację. Należy go wykluczyć z wdrożeń produkcyjnych, aby zmniejszyć rozmiar pamięci i uniknąć udostępniania materiałów referencyjnych frameworka na serwerze produkcyjnym. Natomiast foldery dostawcy i systemowe muszą być wdrożone.

Plik index.php to kontroler frontowy. Ustawia środowisko, definiuje stałe ścieżki i ładuje bootstrap frameworka, dzięki czemu każde przychodzące żądanie jest kierowane przez CodeRurociąg zapłonowy przed dotarciem do kontrolerów i widoków.

Tak. Narzędzia AI, takie jak GitHub Copilot, Cursor i Claude, umożliwiają tworzenie szkieletów kontrolerów, modeli i widoków w odpowiednich folderach, objaśnianie nieznanych plików i oznaczanie nieprawidłowo umieszczonych klas. Są szczególnie przydatne podczas przełączania się między nimi. CodeZapłonnik 3 i CodeUkłady Igniter 4.

Asystenci AI wyjaśniają, jak kontrolery obsługują żądania, modele zarządzają danymi, a widoki renderują dane wyjściowe, a następnie generują pasujące pliki w odpowiednich folderach. Mogą również przeglądać kod, sugerować refaktoryzacje i wzmacniać separację MVC w miarę tworzenia rzeczywistych aplikacji. CodeProjekty Igniter.

Podsumuj ten post następująco: