login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
Bart
Moeilijkheidsgraad:
Normaal
Hits:
17240
Punten:
Aantal punten:
 (5)
Aantal stemmen:
6
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (1)
 

Tutorial:

Websites maken met CakePHP: deel 1

  1. Voorwoord
  2. Benodigdheden
  3. CakePHP 'installeren'
  4. Database klaar maken
  5. Beginpagina veranderen
  6. Structuur nader verklaard
  7. Einde
1. Voorwoord
CakePHP? Kan je dat eten? Het antwoord is nee, CakePHP is net als het Zend Framework een 'raamwerk' om een website te maken. CakePHP is opensource en is te downloaden van CakePHP.org.
CakePHP maakt gebruik van het MVC pattern. (MVC Pattern uitgelegd door marten)

Ik schrijf deze tutorials om je kennis te laten maken met CakePHP, ik laat je via de tutorials een nieuwssysteem maken die je na deze tutorials (als het goed is) zelf kan uitbreiden tot iets moois.

 top
2. Benodigdheden
Er zijn enkele benodigdheden om websites met CakePHP te kunnen maken:
  • Kennis van PHP en MySQL
  • Tijdens deze reeks van tutorial heb je behoorlijke kennis van PHP en MySQL nodig, omdat websites maken met CakePHP op een hoog niveau is.
  • Kennis van OOP (Object Orient Programming)
  • De code die we gaan gebruiken bestaat voornamelijk uit OOP, daarom dien je hier ook de nodige kennis van te hebben.
  • PHP 4.3.2 of hoger
  • Ja, CakePHP werkt met PHP 4.3.2 of hoger.

Nu zul je je afvragen "waarom CakePHP"?
Omdat CakePHP
  • makkelijk te gebruiken is.
  • gebruik maakt van MVC.
  • gebruik maakt van nette URL's.
  • compatibel is met PHP 4.3.2.
 top
3. CakePHP 'installeren'
Om CakePHP te downloaden klik hier.
Maak een map aan op je webserver, webhost etc. genaamd nieuwssysteem. Zorg dat de structuur er zo uit ziet:

 /htdocs
     /nieuwssysteem
         /app
         /cake
         /vendors
     .HTACCESS
     index.php

CakePHP heeft niet veel configuratie nodig, maar toch gaan we maar even controleren of alles goed ingesteld is.
Ga naar http://www.mijnsite.com/nieuwssysteem/. Als het goed is krijg je nu een mooie pagina met daarop "CakePHP Rapid Development".
Je ziet daaronder een regel "Your database configuration file is not present." maak je hier geen zorgen over dit gaan we zometeen instellen.

De paden hieronder genoemd zijn van toepassing op een Xampp webserver, de paden kunnen welliswaar verschillen,
maar in de meeste gevallen is het niet moeilijk om httpd.conf te vinden.
Maar eerst.. als je de pagina ziet zonder stijl ga dan naar "C:xamppapacheconf" en open httpd.conf.
Zoek naar de regel "AllowOverride" hierachter moet je All zetten.
Start je webserver opnieuw op, om de wijzigingen in httpd.conf van toepassing te laten worden.
Herlaad de pagina en je zult een mooie pagina zien met een geladen stylesheet.
Indien dit niet zo is, open "C:xamppapacheconfhttpd.conf" en zoek naar de regel "LoadModule rewrite_module modules/mod_rewrite.so"
Haal het "#"-teken weg voor deze regel. Nu zou je zonder probleem je pagina met een mooie stijl zien.
Wat je nu nog moet doen is de map cake/tmp chmodden naar 777. Als je in Linux werkt kun je de volgende shell-regel gebruiken: sudo chmod -R 0777 /home/username/domains/site.com/public_html/nieuwssysteem/app/tmp/
Als je niet op Linux werkt moet je het handmatig doen, de gehele inhoud van de map cake/tmp moet je naar 777 chmodden.

 top
4. Database klaar maken
Oke, we gaan nu onze database connectie instellen en een database aanmaken.
Maak een database aan met de naam "nieuwssysteem".
Ga naar /nieuwssysteem/app/config en open "database.php.default" in je editor.

/nieuwssysteem/app/config/database.php.default
<?php
class DATABASE_CONFIG
{
    var 
$default = array('driver'      => 'mysql',
                     
'connect'     => 'mysql_connect',
                     
'host'        => 'localhost',
                     
'login'       => 'user',
                     
'password'    => 'password',
                     
'database'    => 'project_name',
                     
'prefix'      => '');

    var 
$test = array('driver'    => 'mysql',
                   
'connect'   => 'mysql_connect',
                   
'host'      => 'localhost',
                   
'login'     => 'user',
                   
'password'  => 'password',
                   
'database'  => 'project_name-test',
                   
'prefix'    => '');
}
?>


Vervang hier de waarden van de array $default 'host', 'login', 'password' en 'database'. De waarde van 'database' wordt 'nieuwssysteem',
want dat is namelijk de database waar we in gaan werken. Als je alles hebt ingevuld, sla je een kopie op genaamd "database.php".
Als je nu naar http://www.mijnsite.com/nieuwssysteem gaat, en je hebt alles goed ingevuld zul je het volgende zien:

Your database configuration file is present.

Cake is able to connect to the database.

 top
5. Beginpagina veranderen
We hebben nu al CakePHP geïnstalleerd, we hebben een klein begin gemaakt met ons model, maar nu gaan we een beginpagina maken. Ik persoonlijk en jij waarschijnlijk ook, vind de beginpagina die we nu zien nu zo mooi. Daar gaan we verandering in brengen. Open je editor en schrijf een mooie tekst voor je beginpagina:

/nieuwssysteem/app/views/pages/home.thtml
<h1>Homepage</h1>
Dit is een nieuwssysteem, gemaakt met CakePHP. <br />
Deze pagina is in ieder geval beter dan die saaie standaard pagina van CakePHP.<br />
<br />
Als je deze pagina wilt veranderen kun je deze pagina verwijderen en aan nieuwe aanmaken.<br />
Zie tutorial voor verdere informatie.<br />
<br />
Zo dat is dan al weer aardig wat tekst. Het is aan jou de taak om er een leuke pagina van de maken.


Als je een beginpagina wilt aanmaken is het enige wat je hoeft te doen een home.thtml te maken en die in de map /nieuwssysteem/app/views/pages te zetten.

 top
6. Structuur nader verklaard
Het is je waarschijnlijk al opgevallen dat CakePHP een groot aantal mappen en submappen heeft.
Ik ga je nu werking van de mappen uitleggen. Zoals eerder gezegd werkt CakePHP met het MVC pattern.
Models - /nieuwssysteem/app/models
Views - /nieuwssysteem/app/views
Controllers - /nieuwssysteem/app/controllers

Models:
Models gebruik je om data op te halen uit de database. In de map /nieuwssysteem/app/models zet je je models neer.

Views:
Views zegt eigenlijk zelf al waarvoor het gebruikt wordt, de weergave. De views worden in de map /nieuwssysteem/app/views gezet.
In de map views zie je ook nog een paar andere mappen, elements, errors, helpers, layouts en pages. Wij gaan de mappen layouts en pages gebruiken. Maar hier later meer over.

Controllers:
Controllers regelen het pagina-navigatiesysteem op onze site. De controllers vind je in de map /nieuwssysteem/app/controllers. Door middel van deze controllers krijg je nette urls zoals:
http://www.mijnsite.com/index/post
In het volgende deel van deze tutorial reeks gaan we aan de slag met deze controllers.

In /nieuwssysteem/app zie je ook nog een map "webroot" staan. Dit is een belangrijke map, open deze maar eens. Je ziet dan de submappen: css/, files/, img/ en js/. In de map css worden de CSS-stylesheets opgeslagen, in de map img/ plaats je de plaatjes van je website en tenslotte in js/ zet je de javascripts van je website.
De map "webroot" is toegankelijk vanuit de adres balk:
http://www.mijnsite.com/nieuwssysteem/css
http://www.mijnsite.com/nieuwssysteem/files
http://www.mijnsite.com/nieuwssysteem/img
http://www.mijnsite.com/nieuwssysteem/js

 top
7. Einde
Dit is alweer het einde van deel 1. Ik heb je een hoop uitgelegd over CakePHP en een database connectie laten maken.
Tot zover was het nog niet echt moeilijk hé. In het volgende deel wordt het moeilijker, dat beloof ik je.
In deze tutorial reeks wil ik je alleen de werking laten zien van CakePHP en verplicht ik je tot niets.

Special thanks: Ontani
Zijn er nog vragen of opmerkingen? Stel ze op het forum of via PM.


« Vorige tutorial : Zend Auth (inloggen mbv Zend Framework) Volgende tutorial : Websites maken met CakePHP: deel 2 »

© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.02s