Static pages
Notă: Acest tutorial presupune că ați descărcat CodeIgniter și ați instalat cadrul în mediul dvs. de dezvoltare.
primul lucru pe care îl veți face este să configurați un controler pentru paginile handlestatic. Un controlor este pur și simplu o clasă care ajută delegat work.It este lipiciul aplicației dvs. web.
de exemplu, atunci când se efectuează un apel către:
ne-am putea imagina că există un controler numit „știri”. Metoda apelată la știri ar fi „cea mai recentă”. Metoda de știri de locuri de muncă ar putea fi tograb 10 știri, și le face pe pagina. Foarte des în MVC, veți vedea modele URL care se potrivesc:
pe măsură ce schemele URL devin mai complexe, acest lucru se poate schimba. Dar deocamdată, asta e tot ce trebuie să știm.
creați un fișier la aplicație/controlere/pagini.php cu următoarelecod.
<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}
ați creat o clasă numită Pages
, cu o metodă de vizualizare care acceptă un argument numit $page
. Clasa Pages
extinde clasaCI_Controller
. Aceasta înseamnă că noua clasă pages poate accesa metode și variabile definite în clasa CI_Controller
(system/core/Controller.php).
controlerul este ceea ce va deveni centrul fiecărei solicitări a aplicației dvs. web. În discuțiile CodeIgniter foarte tehnice, se poate face referire ca super obiect. Ca orice clasă php, vă referiți la el în controlerele dvs. ca $this
. Referindu-se la $this
este modul în careveți încărca biblioteci, vizualizări și, în general, comandați cadrul.
acum ați creat prima metodă, este timpul pentru a face unele pagetemplates de bază. Vom crea două „vizualizări” (șabloane de pagină) care acționează aspagina noastră subsol și antet.
creați antetul la aplicație/vizualizări/șabloane/antet.php și adăugațiurmătorul Cod:
<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>
antetul conține codul HTML de bază pe care doriți să îl afișațiînainte de a încărca vizualizarea principală, împreună cu un titlu. De asemenea, va scoate variabila $title
, pe care o vom defini mai târziu în controler.Acum, creați un subsol la aplicație/vizualizări/șabloane / subsol.php thatinclude următorul cod:
<em>© 2015</em> </body></html>
adăugarea logică la controlerul de
mai devreme ați configurat un controler cu o metodă view()
. Metodaacceptă un parametru, care este numele paginii care trebuie încărcată. Șabloanele de pagină Thestatic vor fi localizate în aplicația/vizualizări/pagini/director.
în acel director, creați două fișiere numite acasă.php și despre.php.În aceste fișiere, tastați un text-orice doriți-și salvați-le.Dacă vă place să fie deosebit de ne-original, încercați ” Hello World!”.
pentru a încărca aceste pagini, va trebui să verificați dacă requestedpage există de fapt:
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);}
acum, când pagina există, este încărcată, inclusiv antetul șifooter și afișată utilizatorului. Dacă pagina nu există, este afișată o eroare „404page not found”.
prima linie din această metodă verifică dacă pagina există de fapt.PHP nativ file_exists()
funcția este utilizată pentru a verifica dacă fileis în cazul în care este de așteptat să fie. show_404()
este un CodeIgniterfunction încorporat care redă pagina de eroare implicită.
în șablonul antet, variabila $title
a fost utilizată pentru personalizarea titlului paginii. Valoarea titlului este definită în această metodă, dar în loc deatribuirea valorii unei variabile, aceasta este atribuită elementului titlu din matricea $data
.
ultimul lucru care trebuie făcut este încărcarea vizualizărilor în ordinear trebui să fie afișate. Al doilea parametru din metoda view()
estefolosit pentru a transmite valori la vizualizare. Fiecare valoare din matricea $data
esteatribuit unei variabile cu numele cheii sale. Deci, valoarea$data
în controler este echivalentă cu $title
înview.
rutare
controlerul funcționează acum! Îndreptați browserul spreindex.php/pages/view
pentru a vă vedea pagina. Când vizitațiindex.php/pages/view/about
veți vedea pagina Despre, din nou inclusingthe antet și subsol.
folosind reguli de rutare personalizate, aveți puterea de a mapa orice URI la anycontroller și metodă și de a vă elibera de Convenția normală:http://example.com///
să facem asta. Deschideți fișierul de rutare situat laaplicație/configurare / rute.php și adăugați următoarele două linii.Eliminați toate celelalte coduri care setează orice element din matricea $route
.
$route = 'pages/view';$route = 'pages/view/';
CodeIgniter citește regulile sale de rutare de sus în jos și rute therequest la prima regulă de potrivire. Fiecare regulă este o expresie regulată(partea stângă) mapată la un controler și numele metodei separate prin slash-uri (partea dreaptă). Atunci când o cerere vine, CodeIgniter caută firstmatch, și solicită controlerul și metoda corespunzătoare, eventual witharguments.
mai multe informații despre rutare pot fi găsite în documentul URI Routingdocumentation.
aici, a doua regulă din matricea $route
se potrivește cu orice cerereutilizând șirul wildcard (:any)
. și trece parametrul la metodaview()
a clasei Pages
.
acum vizitați index.php/about
. A fost direcționat corect către metoda view()
din controlerul pages? Minunat!