CodeIgniter-controllers, Views-routering: leer het met een voorbeeld-app.
In deze tutorial leert u de volgende onderwerpen.
- Routing โ Routing is verantwoordelijk voor het beantwoorden van URL-verzoeken. Routing koppelt de URL aan de vooraf gedefinieerde routes. Als er geen overeenkomende route wordt gevonden, dan... CodeIgniter geeft een 'pagina niet gevonden'-uitzondering.
- Regelaars โ 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 maak je een nieuwe CodeIgniter-project
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 met Composer. Voer de volgende opdracht uit.
composer create-project CodeIgniter/framework ci-app
HIER,
- Het bovenstaande commando creรซert een nieuwe CodeIgniter-projectversie 3 gebruikt de nieuwste stabiele release, namelijk 3.1.9, in een map genaamd 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 Codeontsteker.
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
CodeOntstekerroutering
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'] = โ; Deze route stelt je in staat een aangepaste route voor 404-fouten te definiรซren. Een 404-fout treedt op wanneer een pagina niet kan worden gevonden. CodeIgniter heeft een standaardhandler voor de fout, maar je kunt desgewenst je eigen handler definiรซren.
- $route['translate_uri_dashes'] = FALSE; Deze optie zorgt ervoor dat je streepjes kunt omzetten naar underscores. We zullen deze optie bespreken wanneer we kijken naar hoe routes werken. CodeOntsteker.
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,
- Defined ('BASEPATH') OR exit('No direct script access allowed'); 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, het index.php-bestand. 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 onderzocht wat er standaard meegeleverd wordt. CodeIgniter, laten we nu proberen wat wijzigingen aan te brengen. We gaan onze eigen 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, geven we de volgende instructie: CodeIgniter zoekt naar een controller genaamd 'Welcome' en voert de methode 'about_us' uit.
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 je de bovenstaande pagina kunt zien, gefeliciteerd! Je hebt met succes een eenvoudige applicatie gemaakt in CodeOntsteker.
Samenvatting
In deze handleiding hebben we drie (3) belangrijke onderdelen behandeld waaruit een CodeIgniter-applicatie. We hebben gekeken naar routes en hoe je die definieert, controllers en hoe je methoden maakt die reageren op routeverzoeken, en we hebben eenvoudige weergaven gemaakt die aan gebruikers worden getoond wanneer ze een resource opvragen.




