Static pages Australia
Obs: Denna handledning förutsätter att du har hämtat CodeIgniter andinstalled ramverket i yourdevelopment miljö.
det första du ska göra är att ställa in en kontroller för att hantera statiska sidor. En controller är helt enkelt en klass som hjälper delegera work.It är limet på din webbapplikation.
till exempel när ett samtal görs till:
vi kan föreställa oss att det finns en kontroller som heter ”nyheter”. Metoden som kallas På nyheter skulle vara”Senaste”. Nyhetsmetoden jobb kan vara tograb 10 Nyheter, och göra dem på sidan. Mycket ofta i MVC ser du URL-mönster som matchar:
eftersom URL-scheman blir mer komplexa kan detta ändras. Men för tillfället är detta allt vi behöver veta.
skapa en fil på application/controllers / Pages.php med följandekod.
<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}
du har skapat en klass med namnet Pages
, med en vymetod som accepterarett argument med namnet $page
. Klassen Pages
utökar klassenCI_Controller
. Det betyder att klassen nya sidor kan komma åtmetoder och variabler definierade i klassen CI_Controller
(system/core/Controller.php).
styrenheten är vad som kommer att bli centrum för varje begäran tilldin webbapplikation. I mycket tekniska CodeIgniter diskussioner, det kanske kallas super object. Som alla php-klasser hänvisar du tilldet inom dina kontroller som $this
. Med hänvisning till $this
är hurdu kommer att ladda bibliotek, vyer och generellt beordra ramverket.
nu har du skapat din första metod, det är dags att göra några grundläggande pagetemplates. Vi kommer att skapa två ”vyer” (sidmallar) som fungerar somvår sidfot och sidhuvud.
skapa rubriken på application/views/templates/header.php och lägg tillföljande kod:
<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>
rubriken innehåller den grundläggande HTML-koden som du vill visainnan du laddar huvudvyn, tillsammans med en rubrik. Det kommer också attutmatna variabeln $title
, som vi definierar senare i styrenheten.Skapa nu en sidfot på application/views/templates / footer.php sominnehåller följande kod:
<em>© 2015</em> </body></html>
lägga till logik i styrenheten
tidigare har du ställt in en styrenhet med en view()
– metod. Metodenaccepterar en parameter, vilket är namnet på sidan som ska laddas. Destatiska sidmallar kommer att finnas i applikationen/visningar/sidor/katalog.
i den katalogen skapar du två filer med namnet home.php och om.php.I dessa filer skriver du lite text-vad du vill-och sparar dem.Om du gillar att vara särskilt un-original, prova ”Hello World!”.
för att ladda dessa sidor måste du kontrollera om den begärda sidan faktiskt finns:
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);}
nu, när sidan existerar, laddas den, inklusive rubriken ochfot, och visas för användaren. Om sidan inte finns visas felet ”404page not found”.
den första raden i den här metoden kontrollerar om sidan faktiskt finns.PHP: s inbyggda file_exists()
– funktion används för att kontrollera om filen är där den förväntas vara. show_404()
är en inbyggd CodeIgniterfunction som gör standardfelsidan.
i rubrikmallen användes variabeln $title
för att anpassa sidans titel. Värdet på titeln definieras i den här metoden, men istället förtilldela värdet till en variabel, tilldelas det titelelementeti $data
– arrayen.
det sista som måste göras är att ladda vyerna i ordningende ska visas. Den andra parametern i metoden view()
äranvänds för att skicka värden till vyn. Varje värde i matrisen $data
ärtilldelas en variabel med namnet på dess nyckel. Så värdet på$data
i styrenheten motsvarar $title
i vyn.
Routing ~ ~ POS = TRUNC
regulatorn fungerar nu! Peka din webbläsare tillindex.php/pages/view
för att se din sida. När du besökerindex.php/pages/view/about
ser du om-sidan, inklusive sidhuvudet och sidfoten.
med hjälp av anpassade routing regler, har du befogenhet att kartlägga någon URI till anycontroller och metod, och bryta sig loss från den normala konventionen:http://example.com///
Låt oss göra det. Öppna routingfilen som finns påapplikation/config / rutter.php och Lägg till följande två rader.Ta bort all annan kod som anger något element i matrisen $route
.
$route = 'pages/view';$route = 'pages/view/';
CodeIgniter läser sina routingregler från topp till botten och rutter therequest till den första matchningsregeln. Varje regel är ett reguljärt uttryck(vänster sida) mappat till en kontroller och metodnamn åtskilda av snedstreck(höger sida). När en begäran kommer in, CodeIgniter letar efter firstmatch, och kallar lämplig styrenhet och metod, eventuellt witharguments.
mer information om routing finns i Uri Routingdocumentation.
här matchar den andra regeln i matrisen $route
alla begäranden med hjälp av jokerteckensträngen (:any)
. och skickar parametern till view()
– metoden i Pages
– klassen.
besök nu index.php/about
. Dirigerades det korrekt till view()
– metoden i pages controller? Häftig!