Ελεγκτές CodeIgniter, Δρομολόγηση προβολών: Μάθετε με την εφαρμογή Example

Σε αυτό το σεμινάριο, πρόκειται να μάθετε τα ακόλουθα θέματα.

  • Δρομολόγηση – η δρομολόγηση είναι υπεύθυνη για την απόκριση σε αιτήματα URL. Η δρομολόγηση αντιστοιχίζει τη διεύθυνση URL με τις προκαθορισμένες διαδρομές. Εάν δεν βρεθεί αντιστοίχιση διαδρομής τότε, το CodeIgniter ρίχνει μια σελίδα που δεν βρέθηκε εξαίρεση.
  • ελεγκτές – οι διαδρομές συνδέονται με ελεγκτές. Οι ελεγκτές κολλούν τα μοντέλα και τις όψεις μεταξύ τους. Το αίτημα για δεδομένα/επιχειρησιακή λογική από το μοντέλο και επιστροφή των αποτελεσμάτων στην παρουσίαση της προβολής. Μόλις μια διεύθυνση URL αντιστοιχιστεί σε μια διαδρομή, προωθείται στη δημόσια λειτουργία ενός ελεγκτή. Αυτή η συνάρτηση αλληλεπιδρά με την πηγή δεδομένων, την επιχειρηματική λογική και επιστρέφει την προβολή που εμφανίζει τα αποτελέσματα.
  • Προβολές – οι απόψεις είναι υπεύθυνες για την παρουσίαση. Μια προβολή είναι συνήθως ένας συνδυασμός HTML, CSS και JavaΓραφή. Αυτό είναι το τμήμα που είναι υπεύθυνο για την εμφάνιση της ιστοσελίδας στον χρήστη. Συνήθως, τα δεδομένα που εμφανίζονται ανακτώνται συνήθως από τη βάση δεδομένων ή οποιεσδήποτε άλλες διαθέσιμες πηγές δεδομένων.

Πώς να δημιουργήσετε ένα νέο έργο CodeIgniter

Θα χρησιμοποιήσουμε το Composer για να δημιουργήσουμε ένα νέο έργο. Θα χρησιμοποιώ τον ενσωματωμένο διακομιστή PHP, επομένως δεν είναι απαραίτητο να έχω επιπλέον λογισμικό όπως π.χ Apache. Σε αυτό το σεμινάριο, χρησιμοποιούμε το Windows λειτουργικό σύστημα. Επομένως, δημιουργήσαμε έναν φάκελο Sites στη μονάδα δίσκου C. Μπορείτε να χρησιμοποιήσετε οποιονδήποτε κατάλογο είναι κατάλληλος για εσάς.

Ανοίξτε τη γραμμή εντολών/τερματικό και εκτελέστε την ακόλουθη εντολή

cd C:\Sites

Τώρα θα δημιουργήσουμε ένα έργο CodeIgniter χρησιμοποιώντας το Composer. Εκτελέστε την ακόλουθη εντολή

composer create-project CodeIgniter/framework ci-app

ΕΔΩ,

  • Η παραπάνω εντολή δημιουργεί ένα νέο έργο CodeIgniter έκδοση 3 χρησιμοποιώντας την πιο πρόσφατη σταθερή έκδοση, π.χ., 3.1.9 σε έναν κατάλογο ci-app.

Όταν ολοκληρωθεί η εκτέλεση της παραπάνω εντολής, θα πρέπει να μπορείτε να έχετε παρόμοια αποτελέσματα με τα παρακάτω στο τερματικό

Δημιουργήστε ένα νέο έργο CodeIgniter

Εκτελέστε την ακόλουθη εντολή για να περιηγηθείτε στον νέο κατάλογο του έργου ci-app

cd ci-app

Ας ξεκινήσουμε τώρα τον ενσωματωμένο διακομιστή ιστού PHP

 php -S localhost:3000

ΕΔΩ,

  • Η παραπάνω εντολή ξεκινά τον ενσωματωμένο διακομιστή PHP που εκτελείται στη θύρα 3000.

Ανοίξτε το πρόγραμμα περιήγησης ιστού και περιηγηθείτε στην ακόλουθη διεύθυνση URL: http://localhost:3000/

Θα λάβετε την παρακάτω σελίδα

Δημιουργήστε ένα νέο έργο CodeIgniter

Εάν μπορείτε να δείτε την παραπάνω σελίδα, τότε συγχαρητήρια, έχετε εγκαταστήσει με επιτυχία CodeIgniter.

Όπως μπορείτε να διαβάσετε από την παραπάνω ιστοσελίδα, η σελίδα που εμφανίζεται παραπάνω αποδίδεται από την προβολή που βρίσκεται στο application/views/welcome_message.php και ο υπεύθυνος ελεγκτής βρίσκεται στο application/controllers/Welcome.php

Δρομολόγηση CodeIgniter

Προς το παρόν, η εφαρμογή μας έχει μόνο ένα URL που είναι η αρχική σελίδα. Σε αυτήν την ενότητα, θα προσαρμόσουμε την αρχική ενότητα. Θα δημιουργήσουμε μερικές νέες διευθύνσεις URL που θα ανταποκρίνονται στα διαφορετικά αιτήματα.

Ας ξεκινήσουμε με τη διαδρομή της αρχικής σελίδας

Ανοίξτε το αρχείο διαδρομών όπως υποδεικνύεται από την παρακάτω διαδρομή

application/config/routes.php

Θα πρέπει να μπορείτε να δείτε το παρακάτω περιεχόμενο

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

ΕΔΩ,

  • $route['default_controller'] = 'καλώς ήρθατε'; ορίζει τον προεπιλεγμένο ελεγκτή που ανταποκρίνεται στα αιτήματα URI
  • $route['404_override'] = ”; Αυτή η διαδρομή σάς επιτρέπει να ορίσετε μια προσαρμοσμένη διαδρομή για σφάλματα 404. Παρουσιάζεται σφάλμα 404 όταν δεν βρεθεί μια σελίδα. Το CodeIgniter έχει έναν προεπιλεγμένο χειριστή για το σφάλμα, αλλά μπορείτε να ορίσετε τον δικό σας εάν το επιθυμείτε.
  • $route['translate_uri_dashes'] = FALSE; αυτή η επιλογή σάς επιτρέπει να μεταφράζετε τις παύλες σε υπογράμμιση. Θα μιλήσουμε για αυτήν την επιλογή όταν δούμε πώς λειτουργούν οι διαδρομές στο CodeIgniter.

Ας δούμε τώρα τη μέθοδο ελεγκτή που είναι υπεύθυνη για την εμφάνιση της αρχικής σελίδας που είδαμε όταν ανοίξαμε τη διεύθυνση URL http://localhost:3000/ στο πρόγραμμα περιήγησης ιστού.

Ανοίξτε το παρακάτω αρχείο

application/controllers/Welcome.php

Θα πρέπει να μπορείτε να δείτε τον παρακάτω κώδικα

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

	public function index()
	{
		$this->load->view('welcome_message');
	}
}

ΕΔΩ,

  • Καθορισμένο ('BASEPATH') Ή έξοδος ('Δεν επιτρέπεται η άμεση πρόσβαση σεναρίου'); προστατεύει από την άμεση πρόσβαση στην κλάση ελεγκτή χωρίς να περάσει μέσα από το αρχείο index.php. Θυμηθείτε, στο παράδειγμα MVC όλα τα αιτήματα έχουν ένα μόνο σημείο εισόδου και για τον CodeIgniter, το index.php του. Αυτός ο κώδικας αποκλείει όλα τα αιτήματα που δεν προέρχονται από το index.php
  • class Welcome extends CI_Controller {…} ορίζει μια κλάση Welcome που επεκτείνει τη γονική κλάση CI_Controller
  • Η δημόσια συνάρτηση index() ορίζει μια δημόσια συνάρτηση που καλείται από προεπιλογή όταν ανοίγετε την αρχική σελίδα
  • $this->load->view('welcome_message'); αυτή η γραμμή φορτώνει την προβολή Welcome_message. Το αρχείο welcome_message βρίσκεται στον κατάλογο application/views/welcome_message.php

Μέχρι στιγμής, έχουμε εξερευνήσει μόνο τι βγαίνει από το κουτί με το CodeIgniter, ας προσπαθήσουμε τώρα να κάνουμε κάποιες αλλαγές. Θα δημιουργήσουμε την αρχική μας σελίδα και θα αντικαταστήσουμε την προεπιλεγμένη σελίδα

Δημιουργήστε ένα νέο αρχείο στο application/views/home.php

Προσθέστε τον ακόλουθο κώδικα στο home.php

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Hello CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    CodeIgniter Hello World
                </h1>
            </div>
        </section>
    </body>
</html>

ΕΔΩ,

Ο παραπάνω κώδικας HTML φορτώνει το πλαίσιο SSS της Burma και η γραμματοσειρά από το δίκτυο CDN δημιουργούν ένα πολύ βασικό έγγραφο HTML. Εφαρμόζει πολύ απλό κανόνα CSS από το πλαίσιο Burma CSS.

Ανοίξτε την ακόλουθη διεύθυνση URL στο πρόγραμμα περιήγησής σας: http://localhost:3000/

Θα πρέπει να μπορείτε να δείτε τα παρακάτω

Δρομολόγηση CodeIgniter

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

Δημιουργήστε μια διαδρομή

Ανοίξτε το αρχείο διαδρομών application/config.routes.php

Προσθέστε την ακόλουθη διαδρομή

$route['about-us'] = 'welcome/about_us';

ΕΔΩ,

  • Όταν ένας επισκέπτης επισκέπτεται τη διεύθυνση URL /about-us, δίνουμε εντολή στον CodeIgniter να αναζητήσει έναν ελεγκτή Welcome και να εκτελέσει τη μέθοδο about_us.

Δημιουργήστε έναν ελεγκτή

Ας ορίσουμε τώρα τη μέθοδο ελεγκτή για εμάς

Ανοίξτε την εφαρμογή/ελεγκτές/Welcome.php

Προσθέστε την ακόλουθη μέθοδο

public function about_us(){
            $this->load->view('about_us');
        }

ΕΔΩ,

  • Ο παραπάνω κώδικας ορίζει μια συνάρτηση about_us και φορτώνει μια προβολή about_us.

Δημιουργήστε μια προβολή

Ας δημιουργήσουμε τώρα την προβολή που μόλις αναφέραμε στην παραπάνω ενότητα

Δημιουργήστε ένα νέο αρχείο about_us.php στο application/views/about_us.php

Προσθέστε τον παρακάτω κώδικα

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>About CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    About us yap...                
                </h1>
            </div>
        </section>
    </body>
</html>

Είμαστε έτοιμοι, ανοίξτε την ακόλουθη διεύθυνση URL στο πρόγραμμα περιήγησής σας: http://localhost:3000/index.php/about-us

Θα δείτε την παρακάτω σελίδα

Δημιουργήστε μια προβολή στο CodeIgniter

Εάν μπορείτε να δείτε την παραπάνω σελίδα, τότε συγχαρητήρια, έχετε δημιουργήσει με επιτυχία μια απλή εφαρμογή στο CodeIgniter.

Περίληψη

Σε αυτό το σεμινάριο, καλύψαμε τρία (3) κύρια στοιχεία που συνθέτουν μια εφαρμογή CodeIgniter. Εξετάσαμε διαδρομές και πώς να τις ορίσουμε, ελεγκτές και πώς να δημιουργήσουμε μεθόδους που ανταποκρίνονται σε αιτήματα διαδρομής και δημιουργήσαμε απλές προβολές που επιστρέφονται στους χρήστες όταν ζητούν έναν πόρο.