logo van Wijhe Consultancy
 
Het instellen van de basis
Print deze pagina  RSS feed
  • Begin
  • Nieuws
  • Eigen artikelen
    • Inleiding tot CodeIgniter
    • Installatie Codeigniter 2.1.3
    • Het instellen van de basis
    • De verbinding met een database
    • Eclipse als PHP editor
    • Codeigniter 2.0
    • Een Scripts maker
    • htaccess voor Codeigniter
    • SEO voor iedereen
    • Search Engine Optimization - tips
  • Engelstalige artikelen
  • Nederlandstalige artikelen
  • Web Linken
  • Literatuur
  • Downloads





logo

Codeigniter - het instellen van de basis

 

Uitganspunten.

  • Je hebt kennis genomen van Een inleiding tot Codeigniter
  • En van Installatie Codeigniter 2.1.3
  • Je hebt toegang toe een webserver
  • Je hebt Codeigniter in de map ci geplaatst

 

Instellingen

Elk web applicatie kent zijn instellingen.

En elke web applicatie heeft daar zijn eigen eigenaardigheden in.

Codeigniter is daar niet anders in.

 

Waarom instellen?

Eerst het waarom van het instellen.

Op zich werkt Codeigniter out of the box.

Wel heeft Codeigniter de mogelijkheid om bepaalde zaken beschikbaar te maken of niet.

Codeigniter zal moeten weten hoe je hem wilt gaan gebruiken.

Dus welke functionaliteit wil je op welk moment inzetten.

 

Wat verstaan we eigenlijk onder functionaliteit?.

Codeigniter werkt toch?

 

Op zich klopt dit.

Codeigniter biedt echter nog veel meer.

Er zijn diverse libraries / helpers welke je het leven wel erg gemakkelijk kunt maken.

Libraries zijn erop gerich een complete taak te vergemakkelijken. Vb Email of Upload

Helpers zijn erop gericht binnen een complete taak een deelopdracht voor hun rekening te nemen.

 

Een voorbeeld van een librarie om snel een tabel te maken

  table class  
$this->load->library('table');

$data['gegevens'] = array(
             array('Naam', 'Kleur', 'Grootte'),
             array('Jan', 'Blauw', 'Small'),
             array('Piet', 'Rood', 'Large'),
             array('Klaas', 'Groen', 'Medium')
             );

$this->load->view('tabel1', $data); 

Levert een keurige tabel op

 

 
    De tabel  
NaamKleurGrootte
Jan Blauw Small
Piet Rood Large
Klaas Groen Medium
 

Standaard heeft Codeigniter voldoende functionaliteit om out of the box te werken.

Maar niet alle functionaliteit wordt direct aangeboden.

 

De mogelijkheid wordt zo geboden om lichtgewicht applicaties te kunnen bouwen en om de gebruiker de mogelijkheid te geven zelf te kiezen voor functionaliteiten.

Sterker nog om op elk moment te kunnen kiezen voor het al dan niet inzetten van functionaliteiten.

 

Waarom niet meteen alles inzetten?

Waarom zou je dat doen?

 

Je krijgt dan een applicatie met:

 

  • veel geheugen gebruik
  • veel bronnen gebruik
  • verminderde performance
  • grote footprint

 

Dat lijkt mij niet wenselijk.

 

Een aantal functionaliteiten wil je standaard maar andere pas als je ze nodig bent.

 

Om een voorbeeld te geven, database functionaliteit wil je veelal zowieso.

Dus applicatie breed.

Maar functionaliteit om een formulier te verzenden, heb je pas nodig als je een formulier wilt gaan verzenden

 

Betekent dus dat je zowel op

  • applicatie niveau als op
  • script / functie niveau

zou moeten kunnen kiezen.

Dat kan gelukkig binnen Codeigniter vrij simpel

 

Applicatie niveau

config.php

 

Het instellen van Codeigniter op applicatie niveau gebeurt via een aantal configuratie scripts in de map config

De volgende aanpassing zorgt ervoor dat Codeigniter altijd weet waar het begin van de web applicatie is.

De applicatie kan zo altijd een absoluut pad in de scripts gebruiken.

Javascripts en CSS files zijn zo altijd bereikbaar.

 
    pad naar de file config.php  
./application/config/config.php
 

 

Verander het volgende

  van  
	$config['base_url'] = "http://example.com/";

  naar  
	$config['base_url']    = "http://localhost/ci/";

 

Helpers

De volgende aanpassing laadt een aantal Helpers.

Hiermee helpt Codeigniter je met een aantal taken in een aantal categoriën.

Bijvoorbeeld er zijn Form helpers welke je helpen bij het maken van formulier elementen.

 

Het zijn allemaal functies welke aangeroepen worden.

 

Je kunt ervoor kiezen wanneer je ze wilt aanroepen.

Bij het starten van de applicatie of per functie van een class apart.

 

Het voordeel van het eerste is dat de Helper altijd beschikbaar is.

Het nadeel van de eerste is dat de totala overhead toeneemt.

 

Het voordeel van de tweede is dat de totale overhead zo klein mogelijk gehouden wordt en pas toeneemt als er om gevraagd wordt.

Het nadeel van de tweede is dat je er steede weer aan denken moet en dat de scripts groter worden.

 

Bovenstaande afwegingen zul je zelf per applicatie dienen te maken.

 

Pas de volgende file aan

 
    pad naar de file autoload.php  
./application/config/autoload.php
  van  
	// $autoload['helper'] = array();

  naar  
	 $autoload['helper'] = array('url', 'file');

 

De test

 

We gaan nu in

 
./application/view/welcome_message.php

 

de css file includen.

 

Verwijder de style sheet uit de file en bewaar deze als:

 
C:/htdocs/ci/css/cms.css
  cms.css  
body {
 background-color: #fff;
 margin: 40px;
 font-family: Lucida Grande, Verdana, Sans-serif;
 font-size: 14px;
 color: #4F5155;
}

a {
 color: #003399;
 background-color: transparent;
 font-weight: normal;
}

h1 {
 color: #444;
 background-color: transparent;
 border-bottom: 1px solid #D0D0D0;
 font-size: 16px;
 font-weight: bold;
 margin: 24px 0 2px 0;
 padding: 5px 0 6px 0;
}

code {
 font-family: Monaco, Verdana, Sans-serif;
 font-size: 12px;
 background-color: #f9f9f9;
 border: 1px solid #D0D0D0;
 color: #002166;
 display: block;
 margin: 14px 0 14px 0;
 padding: 12px 10px 12px 10px;
}

 

Voeg vervolgens het volgende toe aan de head sectie:

 
    voegtoe  
<link rel="stylesheet" type="text/css" href="<?php echo base_url() ; ?>css/cms.css"  media="screen,projection" />

 

Uiteraard gaat het om

 
	 <?php echo base_url() ; ?> 

 

Hiermee zet je het pad naar

 
http://localhost/ci/

 

Inderdaad dezelfde als

  naar  
	$config['base_url']    = "http://localhost/ci/";

 

Open nu weer je browser en ga naar

 
http://localhost/ci/

 

Als het goed is, zie je geen verschil.

Het verschil zit onder de motorkap.

De CSS file zit nu in een aparte CSS file en is geintergreerd in de applicatie.

 

Routes

 

Codeigniter maakt gebruik van een standaard controller als er geen URL wordt opgegeven.

Deze controller staat vermeld in:

./application/application/config/routes.php
 

In ons geval is de standaard route

 
welcome.php

 

Aanpassing aan welcome.php

 

Nu een aanpassing aan de controller zelf

 

Open nu

 
./application/controllers/welcome.php

 

en pas het volgende aan

  van  
	function index()
	{
	  $this->load->view('welcome_message', $data);
	}

  naar  
	function index()
	{
	  $data['css'] = 'cms' ;

	  $this->load->view('welcome_message', $data);
	}

 

Sla deze pagina nu op als

 
./application/controllers/begin.php

 

Wat is er nu gebeurd?

 

Aan de functie index ( Altijd de begin functie) is de variabele

 

 
cms

 

toegevoegd aan de variabele

 

 
$data['cms']

 

Op deze manier geeft Codeigniter variabelen door aan de views.

 

Pas nu

 
./application/view/welcome_message.php

 

hierop aan.

 
    van  
<link rel="stylesheet" type="text/css" href="<?php echo base_url() ; ?>css/cms.css"  media="screen,projection" />
 
    naar  
<link rel="stylesheet" type="text/css" href="<?php echo base_url() ; ?>css/<?php echo $css ; ?>.css"  media="screen,projection" />

 

Zo kun je dus variabelen doorgeven en ook per functie van een controller een aparte CSS file gebruiken.

 

Begin controller

 

Stel je wilt een andere controller gebruiken als de standaard welcome.php controller.

Stel je wilt de controller welkom gebruiken als de standaard controller.

 

Hoe doe je dat?

 

Allereerst zul je deze controller dienen te maken

Als voorbeeld dient uiteraard welcome.php

 
./application/controller/welcome.php

 

Deze is met een paar kleine aanpassingen te gebruiken.

  van  
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends ci_Controller {


    public function index()
    {
        $this->load->view('welcome_message');
    }
    
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */ 

  naar  
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welkom extends ci_Controller {

    public function index()
    {
        $data['css'] = 'cms' ;        
        
        $this->load->view('welkom', $data);
    }
    
}

/* End of file welkom.php */
/* Location: ./application/controllers/welkom.php */ 

 

De aanpassingen zitten in in een aantal zaken.

  • de naam van de controller -> welkom.php
  • De naam van de class ->   Welkom   ipv   Welcome
  • Het hoofdletter gebruik bij de naam   Welkom   toekenning
    ( De eerste letter dient een hoofdletter te zijn )
  • Het toewijzen van de waarde   cms   aan de variabele   $data['css']
  • Het aanroepen van de view   welkom
  • Het toewijzen van de   $data   aan de view

 

Rest nu nog de view   welkom.php

  welkom.php  
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

	echo '<html>'."\n" ;
	echo '<head>'."\n" ;

	echo '<title>Welkom bij Codeigniter</title>'."\n" ;
	echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />'."\n" ;

	echo '<link rel="stylesheet" type="text/css" href="'.base_url().'css/'.$css.'css"  media="screen,projection" />'."\n" ;

	echo '</head>'."\n" ;
	echo '<body>'."\n" ;

	echo '<h1>Welkom bij Codeigniter! - door van Wijhe Consultancy</h1>'."\n" ;

	echo '<p>Als je deze pagina wilt aanpassen, ga dan naar:</p>'."\n" ;
	echo '<code>system/application/views/welkom.php</code>'."\n" ;

	echo '<p>De bijbehorende controller kun je vinden op:</p>'."\n" ;
	echo '<code>system/application/controllers/welkom.php</code>'."\n" ;

	echo '<p><br />Pagina rendering in '.0.0519.' seconden</p>'."\n" ;

	echo '</body>'."\n" ;
	echo '</html>' ;

 

Bewaar deze file als welkom.php

Het pad hierna is:

 
./application/view/welkom.php

 

Aanpassen routes.php

 

Om de standaard route aan te passen dienen we de config file routes.php

Het pad hierna is:

 
./application/config/routes.php

 

Verander de file

  van  
	$route['default_controller'] = "welcome";

  naar  
	$route['default_controller'] = "welkom";

 

Tot slot

 

Codeigniter is nu ingesteld.

 

Stoei ermee en koppel diverse controllers aan diverse views.

 

Het volgende artikel zal over de database koppeling gaan.

 

Veel programmeer plezier ermee.

 

Tot ziens,

 

Ubel Jan van Wijhe

 

van Wijhe Consultancy

E-mail naar info@vanwijhecons.nl