Statiske sider¶
Merk: denne opplæringen forutsetter at Du har lastet Ned CodeIgniter og installert rammeverket i ditt utviklingsmiljø.
det første du skal gjøre er å sette opp en kontroller for å håndtere sider. En kontroller er bare en klasse som hjelper delegere work.It er limet på webapplikasjonen din.
For eksempel når en samtale blir gjort til:
Vi kan forestille Oss at det er en kontroller som heter «news». Metodenå bli kalt på nyheter ville være «siste». The news method jobb kan være tograb 10 nyheter, og gjengi dem på siden. Svært ofte I MVC, vil du se URL mønstre som samsvarer:
SOM URL-ordninger blir mer komplekse, kan dette endres. Men for nå, thisis alt vi trenger å vite.
Opprett en fil på program / kontroller / Sider.php med følgendekode.
<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}
du har opprettet en klasse som heter Pages
, med en visningsmetode som godtar et argument som heter $page
. Klassen Pages
utvider klassenCI_Controller
. Dette betyr at den nye pages-klassen kan få tilgang til temaer og variabler definert i CI_Controller
– klassen (system/core/Controller.php).
kontrolleren er det som vil bli sentrum for hver forespørsel tildin webapplikasjon. I svært tekniske CodeIgniter diskusjoner, det kanskje referert til som super objekt. Som enhver php-klasse refererer du tildet i kontrollerne dine som $this
. Med henvisning til $this
er hvordandu vil laste inn biblioteker, visninger og generelt kommandere rammen.
Nå har du opprettet din første metode, det er på tide å lage noen grunnleggende pagetemplates. Vi skal lage to «visninger» (sidemaler) som fungerer somvår side bunntekst og header.
Opprett toppteksten på program / visninger/maler / topptekst.php og addfølgende kode:
<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>
overskriften inneholder den grunnleggende HTML-koden du vil vise før du laster inn hovedvisningen, sammen med en overskrift. Det vil også output $title
variabelen, som vi definerer senere i kontrolleren.Nå lager du en bunntekst på søknad/visninger/maler / bunntekst.php sominkluderer følgende kode:
<em>© 2015</em> </body></html>
Legge til logikk til kontrolleren¶
Tidligere har du satt opp en kontroller med en view()
– metode. Metodenaksepterer en parameter, som er navnet på siden som skal lastes inn. Thestatic sidemaler vil bli plassert i søknaden/visninger/sider / katalog.
opprett to filer med navnet home i den katalogen.php og om.php.Innenfor disse filene skriver du litt tekst-alt du vil-og lagrer dem.Hvis du liker å være spesielt un-original, prøv » Hello World!».
for å laste inn disse sidene må du sjekke om den forespurte siden faktisk eksisterer:
public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}
Nå, når siden eksisterer, lastes den, inkludert toppteksten ogfooter, og vises til brukeren. Hvis siden ikke finnes, vises feilmeldingen «404Page not found».
den første linjen i denne metoden kontrollerer om siden faktisk finnes.PHP innfødte file_exists()
funksjonen brukes til å sjekke om fileis der det er forventet å være. show_404()
er en innebygd Codeigniterfunksjon som gjengir standardfeilsiden.
i overskriftsmalen ble $title
– variabelen brukt til å tilpasse sidetittelen. Verdien av tittelen er definert i denne metoden, men i stedet fortilordne verdien til en variabel, er den tilordnet tittelelementet i matrisen $data
.
det siste som må gjøres, er å laste visningene i ordrende skal vises. Den andre parameteren i metoden view()
erpleide å sende verdier til visningen. Hver verdi i $data
– matrisen ertildelt en variabel med navnet på nøkkelen. Så verdien av$data
i kontrolleren er ekvivalent med $title
ivisning.
Routing¶
kontrolleren fungerer nå! Pek nettleseren din tilindex.php/pages/view
for å se siden din. Når du besøkerindex.php/pages/view/about
vil du se om-siden, igjen inkludert topptekst og bunntekst.
ved hjelp av egendefinerte rutingsregler har du muligheten til å tilordne ENHVER URI til anycontroller og metode, og bryte fri fra den normale konvensjonen:http://example.com///
La oss gjøre det. Åpne rutingsfilen som ligger påsøknad/config / ruter.php og legg til følgende to linjer.Fjern all annen kode som angir et element i matrisen $route
.
$route = 'pages/view';$route = 'pages/view/';
CodeIgniter leser sine rutingsregler fra topp til bunn og ruter therequest til den første samsvarende regelen. Hver regel er et regulært uttrykk(venstre side) tilordnet en kontroller og metodenavn atskilt med skråstreker(høyre side). Når en forespørsel kommer inn, Ser CodeIgniter etter firstmatch, og kaller riktig kontroller og metode, muligens witharguments.
Mer informasjon om ruting finner du i Uri Routingdocumentation.
her samsvarer den andre regelen i $route
– matrisen med alle forespørsler som bruker jokertegnstrengen (:any)
. og sender parameteren til view()
– metoden i Pages
– klassen.
besøk nå index.php/about
. Ble det rutet riktig til view()
– metoden i sidekontrolleren? Fantastisk!