CodeΔομή φακέλων, αρχείων και καταλόγων Igniter

⚡ Έξυπνη Σύνοψη

CodeΤο Igniter οργανώνει ένα έργο PHP σε προβλέψιμους φακέλους για τη λογική της εφαρμογής, τα αρχεία συστήματος framework, τα πακέτα προμηθευτών composer και ένα σενάριο μίας καταχώρησης, έτσι ώστε οι αρχάριοι να μπορούν να εντοπίζουν γρήγορα τον κώδικα και οι ενδιάμεσοι προγραμματιστές να μπορούν να κλιμακώνουν μια καθαρή δομή MVC.

  • 📁 Φάκελος αίτησης: Περιέχει τους ελεγκτές, τα μοντέλα, τις προβολές, τη διαμόρφωση, την προσωρινή μνήμη, τους βοηθούς, τα άγκιστρα, τη γλώσσα, τις βιβλιοθήκες, τα αρχεία καταγραφής και τα πακέτα τρίτων.
  • 🧩 Φάκελος συστήματος: Αποθηκεύει τον πυρήνα του πλαισίου, τα προγράμματα οδήγησης βάσης δεδομένων, τις γραμματοσειρές, τα βοηθητικά προγράμματα, τη γλώσσα και τις ενσωματωμένες βιβλιοθήκες. Μην επεξεργάζεστε αυτά τα αρχεία απευθείας.
  • ⚙️ Σημείο εισόδου: Το root index.php εκκινεί το framework, ορίζει διαδρομές και δρομολογεί κάθε αίτημα HTTP μέσω του front controller.
  • Διαφορές έκδοσης: CodeΤο Igniter 3 χρησιμοποιεί την εφαρμογή/ και το σύστημα/, ενώ CodeΤο Igniter 4 εισάγει τους φακέλους app/, public/ και writable/ για αυστηρότερο διαχωρισμό.
  • 🧪 Προμηθευτής και οδηγός χρήστη: Το Vendor αποθηκεύει τα πακέτα composer που αναπτύσσετε, ενώ το user_guide είναι τοπική τεκμηρίωση που θα πρέπει να εξαιρέσετε από τους διακομιστές παραγωγής.

CodeΦάκελος ανάφλεξης

Κατανόηση της δομής των αρχείων στο CodeΤο Igniter είναι απαραίτητο πριν από την κατασκευή οποιασδήποτε πραγματικής εφαρμογής. Μια προβλέψιμη διάταξη σάς βοηθά να εντοπίζετε γρήγορα ελεγκτές, μοντέλα και προβολές, να εντοπίζετε σφάλματα δρομολόγησης και να ενσωματώνετε νέα μέλη της ομάδας πιο γρήγορα. Αυτό το σεμινάριο καλύπτει την κλασική CodeΗ δομή του Igniter 3 που εξακολουθεί να χρησιμοποιείται ευρέως, και διευκρινίζει επίσης τις βασικές διαφορές που θα συναντήσετε στο CodeIgniter 4.x, το οποίο εισάγει τους φακέλους app/, public/ και writable/ ως ξεχωριστούς φακέλους ανώτατου επιπέδου.

Τι είναι το CodeΔομή αρχείων και καταλόγων Igniter;

The CodeΗ δομή αρχείων του Igniter είναι η προεπιλεγμένη διάταξη φακέλων και αρχείων PHP που συνοδεύει το framework μετά τη λήψη ή την εγκατάστασή του. Διαχωρίζει τη λογική της εφαρμογής σας από τον πυρήνα του framework, διατηρεί τις εξαρτήσεις του composer απομονωμένες και εκθέτει ένα μόνο σημείο εισόδου μέσω του index.php. Η ακόλουθη εικόνα δείχνει τη δομή του αρχείου στο CodeΑναπτήρ:

CodeΔομή αρχείου/φακέλου/καταλόγου Igniter
CodeΔομή αρχείου/φακέλου/καταλόγου Igniter

Εδώ είναι ένα απλοποιημένο δέντρο καταλόγων για ένα νέο CodeΕγκατάσταση του Igniter 3:

// CodeIgniter 3 root layout
project-root/
├── application/
├── system/
├── user_guide/
├── vendor/
├── composer.json
├── composer.lock
└── index.php

Επεξήγηση των φακέλων ανώτατου επιπέδου

Ας δούμε τώρα τα παραπάνω αρχεία CodeΔομή αναφλεκτήρα:

  • εφαρμογή – αυτός είναι ο κατάλογος που θα περιέχει τη λογική της εφαρμογής σας. Όλος ο κώδικας της εφαρμογής σας θα περιέχεται σε αυτόν τον κατάλογο.
  • σύστημα – αυτός ο φάκελος περιέχει τα βασικά αρχεία πλαισίου. Δεν συνιστάται να κάνετε αλλαγές σε αυτόν τον κατάλογο ή να τοποθετήσετε τον δικό σας κωδικό εφαρμογής σε αυτόν τον κατάλογο.
  • ΟΔΗΓΟΣ ΧΡΗΣΤΗ – αυτός ο κατάλογος περιέχει το εγχειρίδιο χρήσης για CodeIgniter.
  • πάροχος υπηρεσιών – αυτός ο κατάλογος περιέχει τον πηγαίο κώδικα των πακέτων composer. Τα άλλα αρχεία που σχετίζονται με αυτόν τον κατάλογο είναι τα composer.json και composer.lock.
  • index.php – αυτό είναι το σημείο εισόδου στην εφαρμογή.

CodeΥποκατάλογοι εφαρμογής Igniter

Ας δούμε τώρα τους καταλόγους με περισσότερες λεπτομέρειες. Όπως αναφέρθηκε, ο κατάλογος εφαρμογής περιέχει τον κώδικα του έργου σας. Σε αυτήν την ενότητα, θα εξετάσουμε τους εσωτερικούς υποκαταλόγους στο CodeΔομή καταλόγου Igniter:

  • κρύπτη – αποθηκεύει αρχεία προσωρινής αποθήκευσης που δημιουργούνται από τις βιβλιοθήκες εξόδου και προσωρινής αποθήκευσης βάσεων δεδομένων.
  • config – διατηρεί αρχεία ρυθμίσεων όπως database.php, routes.php και autoload.php.
  • ελεγκτές – όλοι οι ελεγκτές εφαρμογών ορίζονται εδώ και αντιστοιχίζονται URL τμήματα σε ενέργειες.
  • πυρήνας – περιέχει προσαρμοσμένες βασικές κλάσεις που επεκτείνουν αρχεία συστήματος. Για παράδειγμα, εάν δημιουργήσετε έναν βασικό ελεγκτή που θα πρέπει να επεκτείνουν άλλοι ελεγκτές, θα τον τοποθετήσετε σε αυτόν τον κατάλογο.
  • βοηθούς – αυτός ο κατάλογος των CodeΗ δομή φακέλων του Igniter χρησιμοποιείται για βοηθητικές λειτουργίες που ορίζονται από τον χρήστη.
  • άγκιστρα – χρησιμοποιείται για προσαρμοσμένα άγκιστρα στη δομή φακέλων CI που ενεργοποιούνται κατά τη διάρκεια του κύκλου εκτέλεσης του framework.
  • Γλώσσα – χρησιμοποιείται για την αποθήκευση αρχείων γλώσσας για εφαρμογές που χρησιμοποιούν περισσότερες από μία γλώσσες.
  • βιβλιοθήκες – χρησιμοποιείται για την αποθήκευση προσαρμοσμένων βιβλιοθηκών.
  • κορμούς – τα αρχεία καταγραφής εφαρμογών φυλάσσονται σε αυτόν τον κατάλογο.
  • μοντέλα – όλα τα μοντέλα εφαρμογών θα πρέπει να ορίζονται σε αυτόν τον κατάλογο.
  • τρίτου μέρους – αυτό χρησιμοποιείται για προσαρμοσμένα πακέτα που έχετε δημιουργήσει εσείς ή άλλοι προγραμματιστές.
  • εμφανίσεις – οι προβολές εφαρμογών μεταφέρονται σε αυτόν τον κατάλογο.

Ακολουθεί ένα παράδειγμα του δέντρου υποκαταλόγου εφαρμογής:

// application/ subdirectories
application/
├── cache/
├── config/
├── controllers/
├── core/
├── helpers/
├── hooks/
├── language/
├── libraries/
├── logs/
├── models/
├── third_party/
└── views/

CodeΥποκατάλογοι συστήματος ανάφλεξης

Ας δούμε τώρα τους υποκαταλόγους συστήματος στη δομή αρχείων CI. Να θυμάστε ότι εδώ βρίσκεται ο πηγαίος κώδικας του πλαισίου, επομένως μην κάνετε καμία αλλαγή στα αρχεία σε αυτόν τον κατάλογο.

  • πυρήνας – αυτό είναι σαν την καρδιά του CodeΠλαίσιο ανάφλεξηςΌλα τα βασικά αρχεία που αποτελούν το πλαίσιο βρίσκονται εδώ. Εάν θέλετε να επεκτείνετε τη λειτουργικότητα του βασικού αρχείου, τότε πρέπει να δημιουργήσετε ένα προσαρμοσμένο βασικό αρχείο στον κατάλογο της εφαρμογής. Στη συνέχεια, μπορείτε να παρακάμψετε ή να προσθέσετε νέα συμπεριφορά που επιθυμείτε. Δεν πρέπει ποτέ να κάνετε αλλαγές απευθείας εδώ.
  • βάσεις δεδομένων – εδώ παρέχονται προγράμματα οδήγησης βάσης δεδομένων, προσωρινή μνήμη και άλλα αρχεία που απαιτούνται για λειτουργίες βάσης δεδομένων.
  • γραμματοσειρές – όπως υποδηλώνει το όνομα, αυτός ο κατάλογος περιέχει γραμματοσειρές και πληροφορίες που σχετίζονται με γραμματοσειρές.
  • βοηθούς – αυτόν τον κατάλογο στο CodeΟ φάκελος δομής του Igniter περιέχει βοηθητικές συναρτήσεις που παρέχονται αμέσως.
  • Γλώσσα – περιέχει αρχεία γλώσσας που χρησιμοποιούνται από το πλαίσιο.
  • βιβλιοθήκες – περιέχει τα αρχεία πηγαίου κώδικα για τις διάφορες βιβλιοθήκες που συνοδεύουν CodeΑφαιρέστε τον αναφλεκτήρα από τη συσκευασία.

Η διάταξη του φακέλου συστήματος μοιάζει με αυτό:

// system/ subdirectories
system/
├── core/
├── database/
├── fonts/
├── helpers/
├── language/
└── libraries/

CodeΚατάλογος οδηγών χρήστη Igniter

Αυτός ο κατάλογος χρησιμεύει ως οδηγός αναφοράς όταν θέλετε να κατανοήσετε το CodeAPI Igniter. Δεν πρέπει να ανεβάσετε αυτόν τον κατάλογο κατά την ανάπτυξη της εφαρμογής σας σε παραγωγή, καθώς προσθέτει μέγεθος και εκθέτει τεκμηρίωση που δεν έχει θέση σε ενεργό διακομιστή.

CodeΚατάλογος προμηθευτών αναφλεκτήρων

Αυτός ο κατάλογος περιέχει αρχεία πηγαίου κώδικα για πακέτα που εγκαθιστάτε μέσω του composer. Τα αρχεία σε αυτόν τον κατάλογο θα πρέπει να παραμείνουν ως έχουν και δεν θα πρέπει να γίνουν αλλαγές σε αυτά. Σε αντίθεση με τον κατάλογο user_guide, αυτός ο κατάλογος θα πρέπει να μεταφορτωθεί εάν χρησιμοποιείτε πακέτα composer στην εφαρμογή σας.

Αρχείο index.php

Το αρχείο index.php στο CodeΗ δομή του αρχείου Igniter περιέχει τον κώδικα εκκίνησης που ορίζει το περιβάλλον, τις διαδρομές και την αναφορά σφαλμάτων πριν από την παράδοση του ελέγχου στο πλαίσιο. Αυτό το αρχείο βρίσκεται στον ριζικό κατάλογο και λειτουργεί ως ο μπροστινός ελεγκτής για κάθε εισερχόμενο αίτημα HTTP.

Πως CodeΤο Igniter 4 αλλάζει τη δομή

CodeΤο Igniter 4.x αναδιοργάνωσε τη διάταξη για να βελτιώσει την ασφάλεια και την αυτόματη φόρτωση του PSR-4. Αντί για έναν μόνο φάκελο εφαρμογής, τώρα βλέπετε τρεις φακέλους ανώτατου επιπέδου που διαχωρίζουν τα ζητήματα πιο αυστηρά:

  • εφαρμογή / – ισοδύναμο με την παλαιότερη εφαρμογή/φάκελο, που περιέχει Ελεγκτές, Μοντέλα, Προβολές, Διαμόρφωση, Φίλτρα και Βιβλιοθήκες.
  • δημόσιο/ – ο μόνος φάκελος που εκτίθεται στον ιστό, που περιέχει το index.php και τα στοιχεία CSS, JS και εικόνας σας.
  • εγγράψιμο/ – αποθηκεύει προσωρινή μνήμη, αρχεία καταγραφής, συνεδρίες και μεταφορτώσεις που χρειάζεται να γράψει το πλαίσιο κατά τον χρόνο εκτέλεσης.
  • σύστημα/ – εξακολουθεί να διατηρεί τον πυρήνα του πλαισίου, με ονομαστική χωρισμένη περιοχή κάτω από CodeΑναπτήρ\.
  • Προμηθευτή/ – πακέτα συνθέτη, πανομοιότυπα σε ρόλο με το CI 3.
// CodeIgniter 4 root layout
project-root/
├── app/
├── public/
├── writable/
├── system/
├── vendor/
├── tests/
├── composer.json
├── env
└── spark

Αν ξεκινάτε ένα νέο έργο σήμερα, CodeΗ προτεινόμενη έκδοση είναι το Igniter 4. Εάν διατηρείτε μια παλαιότερη βάση κώδικα, η δομή CI 3 που περιγράφεται παραπάνω θα ταιριάζει με αυτήν που βλέπετε στο δίσκο.

Δουλεύοντας με το CodeΔομή ανάφλεξης καθημερινά

Μόλις μάθετε πού βρίσκεται κάθε φάκελος, οι συνήθεις εργασίες γίνονται απλές. Δημιουργήστε έναν νέο ελεγκτή στο application/controllers/ (ή app/Controllers/ στο CI 4), αντιστοιχίστε τον με μια διαδρομή στο config/routes.php, δημιουργήστε ένα μοντέλο στο models/ και αποδώστε την έξοδο από ένα αρχείο προβολής στο views/. Διατηρήστε τη διαμόρφωση στο config/, αποθέστε επαναχρησιμοποιήσιμο κώδικα σε helpers/ ή libraries/ και αφήστε το composer να διαχειριστεί τα πάντα μέσα στο vendor/. Τηρήστε αυτήν την αρχή και το έργο σας θα παραμείνει εύκολο στην πλοήγηση ακόμα και καθώς μεγαλώνει.

Συχνές Ερωτήσεις

Ο φάκελος εφαρμογής περιέχει τον κώδικα του έργου σας, όπως ελεγκτές, μοντέλα και προβολές, και μπορείτε να τον επεξεργαστείτε ελεύθερα. Ο φάκελος συστήματος περιέχει τον πυρήνα του πλαισίου και δεν πρέπει ποτέ να τροποποιείτε τα αρχεία του, επειδή οι αναβαθμίσεις του πλαισίου θα τα αντικαταστήσουν.

In CodeΣτο Igniter 4, τοποθετείτε νέους ελεγκτές στον φάκελο app/Controllers/ χρησιμοποιώντας τους χώρους ονομάτων PSR-4. Αντιστοιχίστε το όνομα του αρχείου με το όνομα της κλάσης και, στη συνέχεια, καταχωρίστε μια διαδρομή στο app/Config/Routes.php, ώστε το πλαίσιο να μπορεί να αποστέλλει αιτήματα σε αυτό.

Όχι. Ο φάκελος user_guide είναι μόνο τοπική τεκμηρίωση. Εξαιρέστε τον από τις αναπτύξεις παραγωγής για να μειώσετε το αποτύπωμα και να αποφύγετε την έκθεση υλικού αναφοράς πλαισίου σε έναν ενεργό διακομιστή. Αντιθέτως, πρέπει να αναπτυχθούν οι φάκελοι προμηθευτών και συστήματος.

Το αρχείο index.php είναι ο μπροστινός ελεγκτής. Ορίζει το περιβάλλον, ορίζει σταθερές διαδρομής και φορτώνει το bootstrap του πλαισίου, έτσι ώστε κάθε εισερχόμενο αίτημα να δρομολογείται μέσω του CodeΟ αγωγός ανάφλεξης πριν φτάσει στους ελεγκτές και τις προβολές σας.

Ναι. Τα εργαλεία τεχνητής νοημοσύνης όπως το GitHub Copilot, το Cursor και το Claude μπορούν να ενσωματώσουν ελεγκτές, μοντέλα και προβολές στους σωστούς φακέλους, να εξηγήσουν άγνωστα αρχεία και να επισημάνουν κλάσεις που δεν έχουν τοποθετηθεί σωστά. Είναι ιδιαίτερα χρήσιμα όταν κάνετε εναλλαγή μεταξύ CodeΑνάφλεξη 3 και CodeΔιατάξεις Igniter 4.

Οι βοηθοί τεχνητής νοημοσύνης εξηγούν πώς οι ελεγκτές χειρίζονται τα αιτήματα, τα μοντέλα διαχειρίζονται τα δεδομένα και προβάλλουν την έξοδο απόδοσης και, στη συνέχεια, δημιουργούν αντίστοιχα αρχεία στους σωστούς φακέλους. Μπορούν επίσης να ελέγξουν τον κώδικά σας, να προτείνουν αναδιαμορφώσεις και να ενισχύσουν τον διαχωρισμό MVC καθώς δημιουργείτε πραγματικά δεδομένα. CodeΈργα ανάφλεξης.

Συνοψίστε αυτήν την ανάρτηση με: