codeigniter
Laten we beginnen: Hallo wereld
Zoeken…
Een zeer eenvoudige Hello World-applicatie
Beginnend met een nieuwe installatie van Codeigniter 3, is hier een eenvoudige manier om te beginnen met een Hello World-toepassing, om het ijs te breken met dit solide PHP-framework.
Om dit te doen, kun je beginnen met het maken van de weergave die we willen laten zien voor onze Hello World-app.
We gaan het in uw applicatiemap plaatsen, hier:
In hello_world.php
( /application/views/
)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
Het is gewoon een eenvoudige HTML-inhoud.
Om dit beeld getoond te krijgen, hebben we een controller nodig . De controller is degene die de weergave oproept zodat de inhoud ervan wordt weergegeven.
Om het goed te laten werken, moet de controller in de juiste map met controllers gaan.
Hier gaan we onze Hello World-controller plaatsen:
/application/controllers/Hello_world.php
(De naam van de controller is over het algemeen snake_case met de eerste letter in hoofdletters)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Hello_world extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index(){
$this->load->view('hello_world');
}
}
De standaardfunctie voor een controller is de indexfunctie.
Nu kunt u de inhoud van uw Hello World-pagina bekijken met toegang tot het volgende adres:
http://[your_domain_name]/index.php/hello_world
of, als u de fix hebt toegepast met .htaccess (ga terug naar de installatiepagina voor de fix)
http://[your_domain_name]/hello_world
(Als u lokaal werkt, is het adres waarschijnlijk waar u uw pagina vindt: http://localhost/hello_world
)
De URL wordt in feite gevormd door je controller-klasse aan te roepen (in dit geval Hello_world
, maar met alle kleine letters in de URL). In dit geval is het voldoende, omdat we de indexfunctie hebben gebruikt. Als we een andere functienaam hadden gebruikt (laten we zeggen greetings
), hadden we een URL als deze moeten gebruiken:
http://[your_domain_name]/hello_world/greetings
Die is gestructureerd als /[controller_name]/[method_name]
.
Alsjeblieft! Uw eerste Codeigniter-applicatie werkt!
Laten we de controller wat meer gebruiken
Nu zullen we proberen voor een iets complexer voorbeeld te gaan, waarbij we de mogelijkheden van de controller gebruiken om de weergave in te vullen.
Hier is onze weergave: /application/views/hello_world.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Hello World</title>
</head>
<body>
<h1><?php echo $greetings;?></h1>
</body>
</html>
Nu hebben we een tijdelijke aanduiding voor onze groeten die worden weergegeven.
Hier is hoe we de controller veranderen om dit te laten werken:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Hello_world extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function greetings(){
$data = array('greetings'=>'Hello World');
$this->load->view('hello_world',$data);
}
}
De $data
array wordt voorbereid met de informatie die in de weergave moet worden geïnjecteerd, met hetzelfde label ( greetings
) dat in de weergave is opgeroepen.
Het eindresultaat is hetzelfde als bij het eerste voorbeeld, maar we gebruiken nu meer van de potentie van het framework!
Laten we onze groeten kiezen: Hello World of Good Bye World of ...?
Laten we zeggen dat we een alternatieve begroeting willen hebben die toegankelijk is via een andere URL. We kunnen hiervoor een nieuwe functie of zelfs een nieuwe controller maken, maar een best practice is om te optimaliseren wat we al hebben, om het op zijn best te laten werken!
Om dit te doen, houden we dezelfde weergave als in de vorige voorbeelden, maar we introduceren een parameter voor onze functie, zodat deze tussen twee verschillende begroetingen kan kiezen:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Hello_world extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function greetings($my_greetings){
switch($my_greetings)
{
case 'goodbye':
$say = 'Good Bye World';
break;
case 'morning':
$say = 'Good Morning World';
break;
default:
$say = 'Hello World';
}
$data = array('greetings'=>$say);
$this->load->view('hello_world',$data);
}
}
Nu hebben we meerdere begroetingsopties! Om ze te visualiseren, gaan we de parameter als volgt toevoegen aan de URL:
http://[your_domain_name]/hello_world/greetings/goodbye
Dit zal ons de boodschap tonen: "Good Bye World".
De structuur van de URL is als volgt:
http://[your_domain_name]/[controller_name]/[function_name]/[parameter_1]
In dit geval, om terug te keren naar onze goede oude "Hallo wereld", is het voldoende om de vorige url aan te roepen, zonder parameters:
http://localhost/hello_world/greetings
U kunt meerdere parameters aan uw functie toevoegen (bijvoorbeeld als u er 3 nodig hebt):
public function greetings($param1,$param2,$param3)
en ze kunnen als volgt worden opgevuld met de url:
http://[your_domain_name]/[controller_name]/[function_name]/[param1]/[param2]/[param3]
bijv. http://localhost/hello_world/greetings/goodbye/italian/red
Op deze manier kunt u parameters rechtstreeks aan u doorgeven via de URL die van invloed zijn op de inhoud van wat wordt weergegeven.
Wilt u meer weten over het doorgeven van parameters via de URL, kijk dan eens naar het onderwerp routing!