CodeIgniter-ohjaimet, Views Routing: Opi esimerkkisovelluksella
Tässä opetusohjelmassa opit seuraavat aiheet.
- Reititys – reititys vastaa URL-pyyntöihin vastaamisesta. Reititys vastaa URL-osoitetta ennalta määritettyihin reitteihin. Jos reittiä ei löydy, CodeIgniter antaa poikkeuksen sivulle ei löytynyt.
- ohjaimet – reitit on linkitetty ohjaimiin. Ohjaimet liimaavat mallit ja näkymät yhteen. Data/liiketoimintalogiikan pyyntö mallista ja tulokset palautetaan näkymän esitykseen. Kun URL-osoite on kohdistettu reittiin, se välitetään ohjaimen julkiseen toimintoon. Tämä toiminto on vuorovaikutuksessa tietolähteen, liiketoimintalogiikan kanssa ja palauttaa näkymän, joka näyttää tulokset.
- Näyttökerrat – Näkemykset ovat esittelyvastuussa. Näkymä on yleensä yhdistelmä HTML-, CSS- ja JavaKäsikirjoitus. Tämä osa vastaa verkkosivun näyttämisestä käyttäjälle. Tyypillisesti näytettävät tiedot haetaan yleensä tietokannasta tai muista saatavilla olevista tietolähteistä.
Kuinka luoda uusi CodeIgniter-projekti
Käytämme Composeria uuden projektin luomiseen. Käytän PHP sisäänrakennettua palvelinta, joten ei tarvitse olla ylimääräisiä ohjelmistoja, kuten Apache. Tässä opetusohjelmassa käytämme Windows käyttöjärjestelmä. Siksi olemme luoneet Sites-kansion asemaan C. Voit käyttää mitä tahansa sinulle sopivaa hakemistoa.
Avaa komentorivi/pääte ja suorita seuraava komento
cd C:\Sites
Luomme nyt CodeIgniter-projektin Composerilla. Suorita seuraava komento
composer create-project CodeIgniter/framework ci-app
TÄSSÄ,
- Yllä oleva komento luo uuden CodeIgniter-projektin version 3 käyttämällä uusinta vakaata julkaisua eli 3.1.9 hakemistoon ci-app.
Kun yllä oleva komento on suoritettu loppuun, sinun pitäisi pystyä saamaan seuraavanlaisia tuloksia päätteessä
Suorita seuraava komento selataksesi äskettäin luotuun projektihakemistoon ci-app
cd ci-app
Aloitetaan nyt sisäänrakennettu PHP-verkkopalvelin
php -S localhost:3000
TÄSSÄ,
- Yllä oleva komento käynnistää sisäänrakennetun PHP-palvelimen, joka toimii portissa 3000.
Avaa verkkoselain ja selaa seuraavaa URL-osoitetta: http://localhost:3000/
Saat seuraavan sivun
Jos näet yllä olevan sivun, onnittelut, asennus on onnistunut CodeIgniter.
Kuten yllä olevalta verkkosivulta voit lukea, yllä näkyvä sivu on hahmonnettu näkymässä, joka sijaitsee osoitteessa application/views/welcome_message.php ja vastaava ohjain sijaitsee osoitteessa application/controllers/Welcome.php.
CodeIgniter-reititys
Tällä hetkellä sovelluksellamme on vain yksi URL-osoite, joka on kotisivu. Tässä osiossa räätälöimme kotiosion. Luomme uusia URL-osoitteita, jotka vastaavat erilaisiin pyyntöihin.
Aloitetaan kotisivun reitillä
Avaa reittitiedosto alla olevan polun osoittamalla tavalla
application/config/routes.php
Sinun pitäisi pystyä näkemään seuraava sisältö
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
TÄSSÄ,
- $route['default_controller'] = 'Tervetuloa'; määrittää oletusohjaimen, joka vastaa URI-pyyntöihin
- $route['404_override'] = ”; Tämän reitin avulla voit määrittää mukautetun reitin 404-virheille. 404-virhe ilmenee, kun sivua ei löydy. CodeIgniterillä on oletuskäsittelijä virheelle, mutta voit halutessasi määrittää oman.
- $route['translate_uri_dashes'] = EPÄTOSI; Tämän vaihtoehdon avulla voit muuttaa viivat alaviivoiksi. Puhumme tästä vaihtoehdosta, kun tarkastelemme, kuinka reitit toimivat CodeIgniterissä.
Tarkastellaan nyt ohjainmenetelmää, joka vastaa kotisivun näyttämisestä, jonka näimme avattaessamme URL-osoitteen http://localhost:3000/ selaimessa.
Avaa seuraava tiedosto
application/controllers/Welcome.php
Sinun pitäisi pystyä näkemään seuraava koodi
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
}
TÄSSÄ,
- Defined ('BASEPATH') TAI exit('Ei suoraa komentosarjan käyttöä sallittu'); suojaa suoralta pääsyltä ohjainluokkaan ilman index.php-tiedoston läpimenoa. Muista, että MVC-paradigmassa kaikilla pyynnöillä on yksi aloituspiste ja CodeIgniterille sen index.php. Tämä koodi estää kaikki pyynnöt, jotka eivät tule index.php:n kautta
- luokka Tervetuloa laajentaa CI_Controller {…} määrittää luokan Tervetuloa, joka laajentaa pääluokan CI_Controller
- public function index() määrittää julkisen funktion, joka kutsutaan oletusarvoisesti, kun avaat kotisivun
- $this->load->view('welcome_message'); tämä rivi lataa näkymän welcome_message. Tiedosto welcome_message sijaitsee hakemistossa application/views/welcome_message.php
Toistaiseksi olemme vain tutkineet, mitä CodeIgniterin laatikosta tulee, yritetään nyt tehdä joitain muutoksia. Luomme kotisivumme ja korvaamme oletussivun
Luo uusi tiedosto osoitteessa application/views/home.php
Lisää seuraava koodi osoitteeseen 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>
TÄSSÄ,
Yllä oleva HTML-koodi lataa Burman SSS-kehyksen ja fontin CDN-verkosta luovat hyvin yksinkertaisen HTML-dokumentin. Se soveltaa hyvin yksinkertaista CSS-sääntöä Burman CSS-kehyksestä.
Avaa seuraava URL-osoite selaimessasi: http://localhost:3000/
Sinun pitäisi pystyä näkemään seuraavat asiat
Hienoa, olemme juuri muuttaneet kotisivua onnistuneesti. Jatketaan, määritellään reittimme. Oletetaan, että sovelluksemme on pystyttävä näyttämään myös Tietoja meistä -sivu.
Luo reitti
Avaa reittitiedosto application/config.routes.php
Lisää seuraava reitti
$route['about-us'] = 'welcome/about_us';
TÄSSÄ,
- Kun vierailija vierailee URL-osoitteessa /about-us, ohjeistamme CodeIgniteriä etsimään ohjaimen Tervetuloa ja suorittamaan menetelmän about_us.
Luo ohjain
Määritellään nyt itseämme koskeva ohjainmenetelmä
Avaa application/controllers/Welcome.php
Lisää seuraava menetelmä
public function about_us(){
$this->load->view('about_us');
}
TÄSSÄ,
- Yllä oleva koodi määrittelee funktion about_us ja lataa näkymän about_us.
Luo näkymä
Luodaan nyt näkymä, johon juuri viitattiin yllä olevassa osiossa
Luo uusi tiedosto about_us.php osoitteessa application/views/about_us.php
Lisää seuraava koodi
<!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>
Nyt on hyvä mennä, avaa seuraava URL-osoite verkkoselaimessasi: http://localhost:3000/index.php/about-us
Näet seuraavan sivun
Jos näet yllä olevan sivun, onnittelut, olet onnistuneesti luonut yksinkertaisen sovelluksen CodeIgniterissä.
Yhteenveto
Tässä opetusohjelmassa käsittelimme kolme (3) pääkomponenttia, jotka muodostavat CodeIgniter-sovelluksen. Tarkastelimme reittejä ja niiden määrittelyä, ohjaimia ja menetelmiä, jotka vastaavat reittipyyntöihin ja loimme yksinkertaisia näkymiä, jotka palautetaan käyttäjille, kun he pyytävät resurssia.




