CodeIgniter-controllers, weergaveroutering: leer met voorbeeldapp
In deze tutorial leert u de volgende onderwerpen.
- Routing – routing is verantwoordelijk voor het reageren op URL-verzoeken. Routing matcht de URL met de vooraf gedefinieerde routes. Als er geen routeovereenkomst wordt gevonden, genereert CodeIgniter een pagina die geen uitzondering heeft gevonden.
- Controllers – routes zijn gekoppeld aan controllers. Controllers lijmen de modellen en views aan elkaar. Het verzoek om data/bedrijfslogica uit het model en retourneert de resultaten in de presentatie van de weergave. Zodra een URL aan een route is gekoppeld, wordt deze doorgestuurd naar de publieke functie van een verwerkingsverantwoordelijke. Deze functie werkt samen met de gegevensbron en bedrijfslogica en retourneert de weergave waarin de resultaten worden weergegeven.
- Weergaves – standpunten zijn verantwoordelijk voor de presentatie. Een weergave is meestal een combinatie van HTML, CSS en JavaScript. Dit is het onderdeel dat verantwoordelijk is voor het weergeven van de webpagina aan de gebruiker. Meestal worden de weergegeven gegevens opgehaald uit de database of andere beschikbare gegevensbronnen.
Hoe u een nieuw CodeIgniter-project maakt
We gaan Composer gebruiken om een nieuw project te maken. Ik ga de ingebouwde PHP-server gebruiken, dus het is niet nodig om extra software te hebben zoals apache. In deze zelfstudie gebruiken we de Windows besturingssysteem. Daarom hebben we een Sites-map op station C gemaakt. U kunt elke directory gebruiken die voor u geschikt is.
Open de opdrachtregel/terminal en voer de volgende opdracht uit
cd C:\Sites
We gaan nu een CodeIgniter-project maken met Composer. Voer de volgende opdracht uit
composer create-project CodeIgniter/framework ci-app
HIER,
- Met de bovenstaande opdracht wordt een nieuw CodeIgniter-project versie 3 gemaakt met behulp van de nieuwste stabiele release, dwz 3.1.9, in een map ci-app.
Wanneer de bovenstaande opdracht is uitgevoerd, zou u in de terminal resultaten moeten kunnen zien die vergelijkbaar zijn met de volgende:
Voer de volgende opdracht uit om naar de nieuw aangemaakte projectmap ci-app te bladeren
cd ci-app
Laten we nu de ingebouwde PHP-webserver starten
php -S localhost:3000
HIER,
- Met het bovenstaande commando wordt de ingebouwde PHP-server gestart die op poort 3000 draait.
Open de webbrowser en blader naar de volgende URL: http://localhost:3000/
U krijgt de volgende pagina
Als u de bovenstaande pagina kunt zien, gefeliciteerd, dan bent u succesvol geïnstalleerd CodeIgniter.
Zoals u op de bovenstaande webpagina kunt lezen, wordt de hierboven weergegeven pagina gerenderd door de weergave die zich bevindt in application/views/welcome_message.php en de verantwoordelijke controller bevindt zich in application/controllers/Welcome.php
CodeIgniter-routering
Voorlopig heeft onze applicatie slechts één URL: de startpagina. In dit gedeelte passen we het startgedeelte aan. We zullen een aantal nieuwe URL's maken die op de verschillende verzoeken zullen reageren.
Laten we beginnen met de startpaginaroute
Open het routesbestand zoals aangegeven door het onderstaande pad
application/config/routes.php
U zou de volgende inhoud moeten kunnen zien
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
HIER,
- $route['default_controller'] = 'welkom'; definieert de standaardcontroller die reageert op de URI-verzoeken
- $route['404_override'] = ”; Met deze route kunt u een aangepaste route voor 404-fouten definiëren. Er treedt een 404-fout op wanneer een pagina niet wordt gevonden. CodeIgniter heeft een standaardhandler voor de fout, maar u kunt desgewenst uw eigen handler definiëren.
- $route['translate_uri_dashes'] = ONWAAR; Met deze optie kunt u streepjes naar onderstrepingstekens vertalen. We zullen over deze optie praten als we kijken hoe routes werken in CodeIgniter.
Laten we nu kijken naar de controllermethode die verantwoordelijk is voor het weergeven van de startpagina die we zagen toen we de URL openden http://localhost:3000/
in de webbrowser.
Open het volgende bestand
application/controllers/Welcome.php
U zou de volgende code moeten kunnen zien
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
HIER,
- Gedefinieerd ('BASEPATH') OR exit('Geen directe scripttoegang toegestaan'); beschermt tegen directe toegang tot de controllerklasse zonder het index.php-bestand te passeren. Onthoud dat in het MVC-paradigma alle verzoeken één enkel toegangspunt hebben, en voor CodeIgniter de index.php. Deze code blokkeert alle verzoeken die niet via index.php binnenkomen
- class Welcome breidt CI_Controller uit {…} definieert een klasse Welcome die de bovenliggende klasse CI_Controller uitbreidt
- public function index() definieert een publieke functie die standaard wordt aangeroepen wanneer u de startpagina opent
- $this->load->view('welkom_bericht'); deze regel laadt de weergave welkom_bericht. Het bestand welkomstbericht bevindt zich in de map application/views/welcome_message.php
Tot nu toe hebben we alleen verkend wat er uit de doos komt met CodeIgniter, laten we nu proberen wat veranderingen aan te brengen. We gaan onze startpagina maken en de standaardpagina vervangen
Maak een nieuw bestand in application/views/home.php
Voeg de volgende code toe aan 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>
HIER,
De bovenstaande HTML-code laadt het Burma SSS-framework en het lettertype van het CDN-netwerk en creëert een zeer eenvoudig HTML-document. Het past een zeer eenvoudige CSS-regel toe uit het Birma CSS-framework.
Open de volgende URL in uw browser: http://localhost:3000/
U zou het volgende moeten kunnen zien
Geweldig, we hebben zojuist de startpagina met succes aangepast. Laten we verder gaan en onze route bepalen. Laten we aannemen dat onze applicatie ook de over ons-pagina moet kunnen tonen.
Maak een route
Open het routesbestand application/config.routes.php
Voeg de volgende route toe
$route['about-us'] = 'welcome/about_us';
HIER,
- Wanneer een bezoeker de URL /about-us bezoekt, instrueren we CodeIgniter om naar een controller Welcome te zoeken en de methode about_us uit te voeren.
Maak een controleur
Laten we nu de controllermethode over ons definiëren
Open applicatie/controllers/Welcome.php
Voeg de volgende methode toe
public function about_us(){ $this->load->view('about_us'); }
HIER,
- De bovenstaande code definieert een functie about_us en laadt een weergave about_us.
Maak een weergave
Laten we nu de weergave maken waarnaar we zojuist hebben verwezen in de bovenstaande sectie
Maak een nieuw bestand about_us.php in application/views/about_us.php
Voeg de volgende code toe
<!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>
We zijn klaar om te gaan, open de volgende URL in uw webbrowser: http://localhost:3000/index.php/about-us
U ziet de volgende pagina
Als u de bovenstaande pagina kunt zien, gefeliciteerd, dan heeft u met succes een eenvoudige applicatie in CodeIgniter gemaakt.
Samenvatting
In deze tutorial hebben we drie (3) belangrijke componenten besproken waaruit een CodeIgniter-applicatie bestaat. We hebben gekeken naar routes en hoe deze te definiëren, naar controllers en naar manieren om methoden te creëren die reageren op routeverzoeken. We hebben eenvoudige weergaven gemaakt die aan de gebruikers worden geretourneerd wanneer ze om een bron verzoeken.