CodeIgniter-controllers, views Routing: leer met een voorbeeldapp

Inhoudsopgave:

Anonim

In deze tutorial leer je de volgende onderwerpen.

  • Routing - routing is verantwoordelijk voor het reageren op URL-verzoeken. Routing koppelt de URL aan de vooraf gedefinieerde routes. Als er geen route-overeenkomst wordt gevonden, gooit CodeIgniter een pagina die geen uitzondering heeft gevonden.
  • Controllers - routes zijn gekoppeld aan controllers. Controllers lijmen de modellen en weergaven aan elkaar. Het opvragen van data / bedrijfslogica uit het model en de resultaten retourneren in de presentatie van de weergave. Zodra een URL is gekoppeld aan een route, wordt deze doorgestuurd naar de openbare functie van een controller. Deze functie werkt samen met de gegevensbron, bedrijfslogica en retourneert de weergave waarin de resultaten worden weergegeven.
  • Weergaven - weergaven 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. De weergegeven gegevens worden doorgaans opgehaald uit de database of andere beschikbare gegevensbronnen.

In deze tutorial leer je-

  • Hoe u een nieuw CodeIgniter-project maakt
  • CodeIgniter-routering
  • Maak een route
  • Maak een controller
  • Maak een weergave

Hoe u een nieuw CodeIgniter-project maakt

We zullen Composer gebruiken om een ​​nieuw project te maken. Ik zal de ingebouwde PHP-server gebruiken, dus het is niet nodig om extra software zoals Apache te hebben. In deze tutorial gebruiken we het Windows-besturingssysteem. Daarom hebben we een Sites-map op station C gemaakt. U kunt elke map 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,

  • Het bovenstaande commando maakt een nieuw CodeIgniter-projectversie 3 aan met behulp van de laatste stabiele release, dwz 3.1.9 in een directory ci-app.

Wanneer de bovenstaande opdracht is voltooid, zou u in de terminal resultaten moeten kunnen krijgen die vergelijkbaar zijn met de volgende

Voer de volgende opdracht uit om naar de nieuw gemaakte projectdirectory ci-app te bladeren

cd ci-app

Laten we nu de in PHP ingebouwde webserver starten

 php -S localhost:3000 

HIER,

  • De bovenstaande opdracht start de ingebouwde PHP-server die op poort 3000 draait.

Open de webbrowser en blader door de volgende URL

http: // localhost: 3000 /

U krijgt de volgende pagina

Als je de bovenstaande pagina kunt zien, gefeliciteerd, je hebt CodeIgniter met succes geïnstalleerd.

Zoals je kunt lezen op de bovenstaande webpagina, wordt de hierboven weergegeven pagina weergegeven door de weergave in application / views / welcome_message.php en de verantwoordelijke controller bevindt zich in application / controllers / Welcome.php

CodeIgniter-routering

Voorlopig heeft onze applicatie slechts een enkele URL die de startpagina is. In dit gedeelte zullen we het homegedeelte aanpassen. 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 definiëren voor 404-fouten. Er treedt een 404-fout op wanneer een pagina niet wordt gevonden. CodeIgniter heeft een standaardhandler voor de fout, maar u kunt uw eigen handler definiëren als u dat wilt.
  • $ 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 http: // localhost: 3000 / in de webbrowser openden

Open het volgende bestand

application/controllers/Welcome.php

U zou de volgende code moeten kunnen zien

load->view('welcome_message');}}

HIER,

  • Gedefinieerd ('BASEPATH') OF exit ('Geen directe scripttoegang toegestaan'); beschermt tegen directe toegang tot de controller-klasse zonder het index.php-bestand te passeren. Onthoud dat in het MVC-paradigma alle verzoeken één ingangspunt hebben en voor CodeIgniter de index.php. Deze code blokkeert alle verzoeken die niet via index.php binnenkomen
  • class Welcome extends CI_Controller {…} definieert een class Welcome die de bovenliggende class CI_Controller uitbreidt
  • public function index () definieert een publieke functie die standaard wordt aangeroepen wanneer je de homepagina opent
  • $ this-> load-> view ('welcome_message'); deze regel laadt de weergave welcome_message. Het bestand welcome_message bevindt zich in de directory application / views / welcome_message.php

Tot nu toe hebben we alleen onderzocht wat er uit de doos komt met CodeIgniter, laten we nu proberen enkele wijzigingen aan te brengen. We zullen onze startpagina maken en de standaardpagina vervangen

Maak een nieuw bestand aan in application / views / home.php

Voeg de volgende code toe aan home.php

Hello CodeIgniter!

CodeIgniter Hello World

HIER,

De bovenstaande HTML-code laadt het Burma SSS-framework en het lettertype van het CDN-netwerk om een ​​zeer eenvoudig HTML-document te maken. Het past een zeer eenvoudige CSS-regel toe vanuit het Burma 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, laten we 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 CodeIgniter de opdracht om naar een controller Welcome te zoeken en de methode about_us uit te voeren.

Maak een controller

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 view about_us.

Maak een weergave

Laten we nu de weergave maken waarnaar we zojuist in de bovenstaande sectie hebben verwezen

Maak een nieuw bestand about_us.php in application / views / about_us.php

Voeg de volgende code toe

About CodeIgniter!

About us yap…

We zijn klaar om te gaan, open de volgende URL in uw webbrowser

http: // localhost: 3000 / index.php / over-ons

U ziet de volgende pagina

Als je de bovenstaande pagina kunt zien, gefeliciteerd, je hebt met succes een eenvoudige applicatie gemaakt in CodeIgniter.

Overzicht

In deze zelfstudie hebben we drie (3) hoofdcomponenten besproken waaruit een CodeIgniter-toepassing bestaat. We hebben gekeken naar routes en hoe ze te definiëren, controllers en hoe we methoden kunnen creëren die reageren op routeaanvragen en we hebben eenvoudige weergaven gemaakt die worden teruggestuurd naar de gebruikers wanneer ze om een ​​bron vragen.