CodeSytytysohjaimet, Näkymät Reititys: Opi esimerkin avulla

⚡ Älykäs yhteenveto

Tämä CodeIgniter-esimerkki rakentaa pienen sovelluksen, joka havainnollistaa reitityksen, ohjainten ja näkymien yhteistyötä. Uusi projekti luodaan Composerilla, reitityskartalla. URLs ohjainmetodeille, ja jokainen metodi lataa näkymän, joka palauttaa HTML-koodin selaimelle.

  • 🧭 reititys: Reitit vastaavat a:ta URL ohjainmenetelmään ja vertaansa vailla olevaan URL aiheuttaa sivua ei löydy -virheen.
  • 🎛️ ohjaimet: Ohjainmetodi vastaa reittiin, pyytää dataa ja palauttaa näkymän.
  • 🖼️ Luettu: Näkymä yhdistää HTML:n, CSS:n ja JavaSkripti, joka näyttää tuloksen käyttäjälle.
  • 📦 Projektin määritys: Composer luo projektin ja sisäänrakennettu PHP-palvelin suorittaa sen paikallisesti.
  • 🏠 Oletusreitti: default_controller asettaa aloitussivun ja 404_override asettaa mukautetun virhesivun.
  • Mukautettu reitti: Reitti, kuten about-us, liittyy Welcome-ohjaimen about_us-metodiin.
  • 🔁 Täysi virtaus: URL reitittääkseen ohjaimeen katselua varten ja sitten HTML:n takaisin selaimeen.

CodeSytyttimen ohjaimet ja näkymät

Tässä opetusohjelmassa opit seuraavat aiheet:

  • Reititys – reititys vastaa reagoinnista URL pyyntöjä. Reititys vastaa URL ennalta määriteltyihin reitteihin. Jos reittiä ei löydy, CodeIgniter heittää sivua ei löydy -poikkeuksen.
  • ohjaimet – reitit linkittyvät ohjaimiin. Ohjaimet liimaavat mallit ja näkymät yhteen. Ne pyytävät mallilta dataa ja liiketoimintalogiikkaa ja palauttavat tulokset näkymän esitysmuodossa. Kun URL on yhdistetty reittiin, se välitetään ohjaimen julkiselle funktiolle. Tämä funktio on vuorovaikutuksessa tietolähteen ja 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 JavaSkripti. Tämä osa vastaa verkkosivun näyttämisestä käyttäjälle. Yleensä näytettävät tiedot haetaan tietokannasta tai muusta käytettävissä olevasta tietolähteestä.

Kuinka luoda uusi CodeSytytinprojekti

Käytämme Composeria uuden projektin luomiseen. Käytämme PHP:n sisäänrakennettua palvelinta, joten ylimääräisiä ohjelmistoja, kuten ApacheTässä opetusohjelmassa käytämme Windows käyttöjärjestelmä, joten olemme luoneet Sivustot-kansion C-asemalle. Voit käyttää mitä tahansa sinulle sopivaa hakemistoa.

Avaa komentorivi tai pääte ja suorita seuraava komento:

cd C:\Sites

Luomme nyt a CodeIgniter-projekti Composerilla. Suorita seuraava komento:

composer create-project CodeIgniter/framework ci-app

Tässä:

  • Yllä oleva komento luo uuden CodeIgniter-projektin versio 3, käyttäen uusinta vakaata julkaisua (3.1.9 kirjoitushetkellä), hakemistoon nimeltä ci-app.

Kun komento on suoritettu loppuun, sinun pitäisi nähdä terminaalissa seuraavanlaisia ​​tuloksia:

Säveltäjä luo uutta CodeSytytinprojekti

Suorita seuraava komento selataksesi juuri luotuun projektihakemistoon ci-app:

cd ci-app

Käynnistä nyt PHP:n sisäänrakennettu web-palvelin:

php -S localhost:3000

Tässä:

  • Yllä oleva komento käynnistää sisäänrakennetun PHP-palvelimen portissa 3000.

Avaa verkkoselain ja selaa seuraavia URL: http://localhost:3000/Saat seuraavan sivun:

CodeIgniterin oletusarvoinen tervetulosivu

Jos näet yllä olevan sivun, onneksi olkoon, asennus on onnistunut. CodesytytinSivu renderöidään näkymässä, joka sijaitsee tiedostossa application/views/welcome_message.php, ja vastaava ohjain sijaitsee tiedostossa application/controllers/Welcome.php.

CodeSytyttimen reititys

Tällä hetkellä sovelluksessamme on vain yksi URL, joka on kotisivu. Tässä osiossa mukautamme kotisivua ja luomme uusia URLjotka vastaavat erilaisiin pyyntöihin.

Aloitetaan kotisivun reitistä. Avaa reittitiedosto alla olevasta polusta:

application/config/routes.php

Sinun pitäisi nähdä seuraava sisältö:

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

Tässä:

  • $route['default_controller'] = 'welcome'; määrittää oletusohjaimen, joka vastaa URI-pyyntöihin.
  • $route['404_override'] = ”; voit määrittää mukautetun reitin 404-virheille. 404-virhe tapahtuu, kun sivua ei löydy. CodeIgniterillä on oletuskäsittelijä virheelle, mutta voit määrittää oman, jos haluat.
  • $route['translate_uri_dashes'] = FALSE; voit muuntaa viivat alaviivoiksi. Käsittelemme tätä vaihtoehtoa, kun tarkastelemme reittien toimintaa CodeSytytin.

Katsotaanpa nyt ohjainmenetelmää, joka vastaa kotisivun näyttämisestä, jonka näimme avatessamme http://localhost:3000/Avaa seuraava tiedosto:

application/controllers/Welcome.php

Sinun pitäisi nähdä 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('Suoraa komentosarjojen käyttöä ei sallita'); suojaa ohjainluokan suoralta käyttämiseltä ilman index.php-tiedoston läpikulkua. MVC-paradigmassa kaikilla pyynnöillä on yksi aloituspiste, joka esim. CodeSytytin on index.php. Tämä koodi estää kaikki pyynnöt, jotka eivät tule index.php:n kautta.
  • luokka Welcome laajentaa CI_Controller-luokkaa {…} määrittelee Welcome-luokan, joka laajentaa pääluokkaa CI_Controller.
  • public function index() määrittää julkisen funktion, jota kutsutaan oletusarvoisesti, kun avaat kotisivun.
  • $this->load->view('welcome_message'); lataa welcome_message-näkymän, joka sijaitsee tiedostossa application/views/welcome_message.php.

Tähän mennessä olemme tutkineet vain sitä, mitä laatikosta tulee ulos CodeSytytin. Tehdään nyt joitakin muutoksia. Luomme oman kotisivun ja korvaamme oletussivun. Luo uusi tiedosto osoitteeseen application/views/home.php ja lisää seuraava koodi:

<!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 Bulma CSS -kehyksen ja Font Awesome -ominaisuuden CDN:stä ja luo hyvin yksinkertaisen HTML-dokumentin. Se soveltaa yksinkertaista CSS-sääntöä Bulma CSS -kehyksestä.

Avaa seuraavat URL selaimessasi: http://localhost:3000/Sinun pitäisi nähdä seuraavaa:

Mittatilaus CodeIgniterin kotisivu

Hienoa, olemme muokanneet kotisivua onnistuneesti. Siirrytäänpä määrittelemään reittimme. Oletetaan, että sovelluksemme tarvitsee myös Tietoja meistä -sivun.

Luo reitti

Avaa reittitiedosto application/config/routes.php ja lisää seuraava reitti:

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

Tässä:

  • Kun vierailija vierailee URL /tietoa-meistä, ohjeistamme CodeSytytin etsii ohjainta. Tervetuloa ja suorita about_us-metodi.

Luo ohjain

Määritellään nyt ohjaimen metodi about_us. Avaa application/controllers/Welcome.php ja lisää seuraava metodi:

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 juuri mainitsemamme näkymä. Luo uusi tiedosto about_us.php hakemistoon application/views/about_us.php ja lisää siihen 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>

Olemme valmiita aloittamaan. Avaa seuraava URL verkkoselaimessasi: http://localhost:3000/index.php/about-usNäet seuraavan sivun:

CodeIgniterin tietosivu

Jos näet yllä olevan sivun, onneksi olkoon, olet luonut yksinkertaisen sovelluksen. CodeSytytin.

UKK

Reittimerkintä kartoittaa URL segmentti ohjaimeen ja metodiin, kuten 'tervetuloa/tietoa_meistä'. Kun se URL pyydetään, CodeIgniter suorittaa nimetyn metodin, joka lataa ja palauttaa näkymän.

Se asettaa ohjaimen, joka käsittelee sivuston pääkäyttäjän oikeudet, kun tiettyä URL on annettu. Esimerkissä 'welcome' tarkoittaa, että kotisivua palvelee Welcome-ohjaimen index-metodi.

Ei. Sisäänrakennettu PHP-palvelin, joka käynnistetään komennolla php -S localhost:3000, riittää esimerkin suorittamiseen paikallisesti. Apachea tai Nginxiä tarvitaan vain tuotantoympäristössä tapahtuvaan käyttöönottoon.

Kyllä. Sivun kuvauksesta tekoäly voi kirjoittaa reittimerkinnän, ohjaimen metodin ja vastaavan näkymän, pitääping nimet johdonmukaisia. Tarkista polut omiin nimiisi verrattuna. CodeSytyttimen versio.

Tässä esimerkissä käytetään CodeIgniter 3, joka tallentaa ohjaimet ja näkymät application/-hakemistoon. CodeIgniter 4 on uudistanut hakemistojen ja nimiavaruuksien rakennetta, joten polut ja syntaksi eroavat toisistaan ​​uudemmissa projekteissa.

Tiivistä tämä viesti seuraavasti: