<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webmasterplein Blogt</title>
	<atom:link href="http://webmasterplein.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://webmasterplein.net/blog</link>
	<description>met passie voor het web</description>
	<lastBuildDate>Sat, 04 Apr 2009 10:23:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Firefox 3, de meest gebruikte browser in Europa</title>
		<link>http://webmasterplein.net/blog/2009/04/firefox-3-de-meest-gebruikte-browser-in-europa/</link>
		<comments>http://webmasterplein.net/blog/2009/04/firefox-3-de-meest-gebruikte-browser-in-europa/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 10:23:09 +0000</pubDate>
		<dc:creator>Libia</dc:creator>
				<category><![CDATA[Algemeen]]></category>
		<category><![CDATA[Diverse]]></category>
		<category><![CDATA[Leesvoer]]></category>
		<category><![CDATA[Webtalk]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[top browsers]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=170</guid>
		<description><![CDATA[Vorige week heeft Firefox 3 Internet Explorer 7 ingehaald als de populairste browser in Europa. Dit blijkt uit de cijfers op StatCounter.


Sinds Augustus lijken veel Internet Explorer gebruikers (voor zowel 6 als) over te stappen op Firefox. Echter, als je niet naar de versies kijkt heeft Internet Explorer nog steeds een voorsprong van 12 procent [...]]]></description>
			<content:encoded><![CDATA[<p>Vorige week heeft Firefox 3 Internet Explorer 7 ingehaald als de populairste browser in Europa. Dit blijkt uit de cijfers op StatCounter.<br />
<span id="more-170"></span></p>
<p><a href="http://www.techzine.nl/uploaded/27234_44c1254b.jpg"><img src="http://www.techzine.nl/uploaded/27234_426bec03.jpg" alt="Top 8 browsers in Europa" /></a></p>
<p>Sinds Augustus lijken veel Internet Explorer gebruikers (voor zowel 6 als) over te stappen op Firefox. Echter, als je niet naar de versies kijkt heeft Internet Explorer nog steeds een voorsprong van 12 procent op Firefox.</p>
<p><a href="http://www.techzine.nl/uploaded/27234_16d9c59b.jpg"><img src="http://www.techzine.nl/uploaded/27234_4afd7bb6.jpg" alt="Top 5 browsers in Nederland" /></a></p>
<p>In Nederland zijn de aantallen echter anders dan het gemiddelde, Internet Explorer wordt hier nog veel meer gebruikt dan Firefox.</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2009/04/firefox-3-de-meest-gebruikte-browser-in-europa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Chrome uit bèta</title>
		<link>http://webmasterplein.net/blog/2008/12/google-chrome-uit-beta/</link>
		<comments>http://webmasterplein.net/blog/2008/12/google-chrome-uit-beta/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 18:30:49 +0000</pubDate>
		<dc:creator>Stef</dc:creator>
				<category><![CDATA[Webtalk]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=159</guid>
		<description><![CDATA[Google&#8217;s browser Chrome is zojuist uit bèta, heel uitzonderlijk voor Google producten die meestal jaren bèta blijven. Echter maakt Google van Chrome echt werk: het adverteert flink in zijn netwerk, luistert naar feedback, mogelijkheid tot plugins en om dan de stempel bèta er op te houden is natuurlijk marketingtechnisch niet heel slim.
De eerste release bevat [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://webmasterplein.net/blog/uploads/2008/12/chrome.jpg"><img class="alignleft size-medium wp-image-160" style="float:left;" title="chrome" src="http://webmasterplein.net/blog/uploads/2008/12/chrome.jpg" alt="" width="120" height="120" /></a>Google&#8217;s browser Chrome is <a href="http://googleblog.blogspot.com/2008/12/google-chrome-beta.html">zojuist uit bèta</a>, heel uitzonderlijk voor Google producten die meestal jaren bèta blijven. Echter maakt Google van Chrome echt werk: het adverteert flink in zijn netwerk, luistert naar feedback, mogelijkheid tot plugins en om dan de stempel bèta er op te houden is natuurlijk marketingtechnisch niet heel slim.</p>
<p>De eerste release bevat meer snelheid, gebruiksvriendelijkheid en veiligheid maar support voor Mac of Linux blijft voorlopig uit (al zal dat niet lang op zich laten wachten). Kortom wie de browser weer eens start, kan vrijwel gelijk de nieuwe updates binnenhalen.</p>
<p>Wat betreft de webstandaarden scoort Google Chrome 79 op 100 met de <a href="http://acid3.acidtests.org/">Acid3 test</a>, iets beter dan Firefox 3.0 en net iets slechter dan Opera 9.5.</p>
<p>Maar de belangrijkste vraag: of Google een fatsoenlijk marktaandeel kan gaan opbouwen?</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/12/google-chrome-uit-beta/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP OOP &#8211; We extenden onze kennis!</title>
		<link>http://webmasterplein.net/blog/2008/12/php-oop-we-extenden-onze-kennis/</link>
		<comments>http://webmasterplein.net/blog/2008/12/php-oop-we-extenden-onze-kennis/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 18:06:25 +0000</pubDate>
		<dc:creator>Libia</dc:creator>
				<category><![CDATA[Scripten]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[extend]]></category>
		<category><![CDATA[klasse]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=149</guid>
		<description><![CDATA[Ik hoop dat je genoten hebt van <a href="http://webmasterplein.net/blog/2008/11/php-oop-wat-en-hoe/">m’n eerste deel</a> en dat je hier lekker mee hebt kunnen oefenen en experimenteren! Het is heel erg belangrijk dat je alle theorie uit dat eerste deel begrijpt en ook toe kunt passen!
Jan-Jaap heeft ook al het extends keyword <a href="http://webmasterplein.net/blog/2008/12/php-fouten-afhandelen-met-exceptions/">gebruikt</a>, dat ga ik in deze tutorial ook weer wat verder uitleggen.]]></description>
			<content:encoded><![CDATA[<p>Ik hoop dat je genoten hebt van <a href="http://webmasterplein.net/blog/2008/11/php-oop-wat-en-hoe/">m’n eerste deel</a> en dat je hier lekker mee hebt kunnen oefenen en experimenteren! Het is heel erg belangrijk dat je alle theorie uit dat eerste deel begrijpt en ook toe kunt passen!<br />
Jan-Jaap heeft ook al het extends keyword <a href="http://webmasterplein.net/blog/2008/12/php-fouten-afhandelen-met-exceptions/">gebruikt</a>, dat ga ik in deze tutorial ook weer wat verder uitleggen.</p>
<p><span id="more-149"></span></p>
<h2>Dus, Wat gaan we doen?</h2>
<p>Eigenlijk gaan we weer hetzelfde doen als in het vorige deel, we gaan weer een auto klasse maken. Maar elke auto is natuurlijk anders, dus maken we meerdere klassen. Dit lijkt omslachtig ja, maar dat is waar het extends keyword komt kijken!</p>
<h2>Eerst wat theorie.</h2>
<p>De definitie van een klasse kennen jullie nu natuurlijk al (anders moet je m’n eerste deel nog maar is lezen). Maar er komt nog een deel bij. Een klasse kan namelijk ook iets zijn dat een uitbreiding is van een andere klasse. Als dit het geval is, dan neemt een klasse alle methods en variabelen van de ouder-klasse over. Vervolgens kun je nieuwe methods toevoegen, variabelen toevoegen, methods veranderen en variabelen veranderen, behalve als er een bescherming op zit.</p>
<h3>Een bescherming?</h3>
<p>Ja een bescherming! Weet je nog dat we het hadden over private, protected en public? Je weet dat public was om een method of variabele vanuit de instantie te kunnen benaderen, maar wat is nou het verschil tussen private en protected. Een private method of variabele kan alleen worden gebruikt door de klasse waarin hij gedefinieerd is, een protected method of variabele kan ook worden gebruikt door een uitbreiding van de klasse/kinderklasse/extended klasse. Behalve als je echt niet wilt dat iets in een uitbreidingsklasse wordt gebruikt, raad ik je dus aan om altijd protected te gebruiken!</p>
<h2>Maak maar een auto dan!</h2>
<p>We gaan nu eerst weer de auto klasse terughalen, ik voeg hier ook een maximumsnelheid aan toe, ook heb ik alle echo’s verwijderd, omdat dat niet netjes is:</p>
<p><code>class Auto<br />
{<br />
public $merk = 'onbekend';<br />
public $kleur = 'onbekend';<br />
public $nummerbord = 'on-be-kend';<br />
protected $snelheid = 0;<br />
protected $maxSnelheid = 150; //sneller dan dit mag de auto niet gaan<br />
protected $lichten = false; //lichten standaard uit</code></p>
<p>public function __construct($merk, $kleur, $nummerbord)<br />
{<br />
$this-&gt;merk = $merk;<br />
$this-&gt;kleur = $kleur;<br />
$this-&gt;nummerbord = $nummerbord;<br />
$this-&gt;lichten = rand(0, 1);<br />
}</p>
<p>public function geefGas($snelheid = 5)<br />
{<br />
$this-&gt;snelheid += $snelheid; //Let op dat je hier niet in de war raakt!<br />
}</p>
<p>public function geefMinderGas($snelheid = 5)<br />
{<br />
$this-&gt;snelheid -= $snelheid; //natuurlijk kun je dit ook bereiken met de vorige method, bij een snelheid van -5 <img src='http://webmasterplein.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
}</p>
<p>public function kijkOpSnelheidsmeter()<br />
{<br />
return $this-&gt;snelheid;<br />
}</p>
<p>public function handrem()<br />
{<br />
$snelheid = $this-&gt;snelheid; //de oude snelheid bewaren<br />
$this-&gt;snelheid = 0;</p>
<p>$this-&gt;botsing($snelheid); //roep een andere method aan<br />
}</p>
<p>public function switchLichten()<br />
{<br />
$this-&gt;lichten = !$this-&gt;lichten;</p>
<p>return $this-&gt;lichten;<br />
}</p>
<p>private function botsing($beginsnelheid)<br />
{<br />
if(!rand(0, 9) || $beginsnelheid &gt; 100 || $beginsnelheid &lt; -100)<br />
{<br />
return true;<br />
}<br />
else<br />
{<br />
return false;<br />
}<br />
}<br />
}<br />
?&gt;</p>
<p>Nu wil ik een Ferrari die harder kan rijden en sneller optrekt, een Audi die minder snel kan rijden en geen lichten heeft en een bmw zonder handrem en met een kapotte snelheidsmeter. Dit kunnen we op twee manieren berijken:<br />
1. We maken voor elke auto een andere klasse, nadeel: kost erg veel ruimte! Voordeel: dat begrijpen we!<br />
2. We maken extend klassen van de Auto klasse waarmee we bepaalde dingen veranderen, nadeel: begrijpen we nog niet! Voordeel: lekker makkelijk/klein<br />
Natuurlijk kiezen we voor optie 2, we zijn lui! En geen zorgen, ik leg het wel uit!</p>
<h2>Aan de slag dan maar!</h2>
<p>Juist, we beginnen met de makkelijkste, de Ferrari! Eerst maken we de klasse en zeggen we dat de klasse Auto moet naapen:<br />
<code>class Ferrari extends Auto<br />
{<br />
}</code><br />
Eerst vertellen we dat hij harder mag rijden:<br />
<code>class Ferrari extends Auto<br />
{<br />
protected $maxSnelheid = 355;<br />
}</code><br />
Nu schrijven we de geefGas method opnieuw:</p>
<p><code>class Ferrari extends Auto<br />
{<br />
protected $maxSnelheid = 355;</code></p>
<p>public function geefGas($snelheid = 10) //door de 10 trekt de ferrari twee keer zo snel op!<br />
{<br />
$this-&gt;snelheid += $snelheid; //Let op dat je hier niet in de war raakt!<br />
if($this-&gt;snelheid &gt; $this-&gt;maxSnelheid)<br />
{<br />
$this-&gt;snelheid = $this-&gt;maxSnelheid;<br />
}<br />
}<br />
}</p>
<p>En dat is alles wat je nodig hebt om een nieuwe klasse te schrijven, alle andere methods en variabelen werken namelijk ook nogsteeds! Nu gaan we hetzelfde doen, maar dan voor de Audi!</p>
<p><code>class Audi extends Auto<br />
{<br />
protected $maxSnelheid = 76;</code></p>
<p>public function __construct($merk, $kleur, $nummerbord)<br />
{<br />
$this-&gt;merk = $merk;<br />
$this-&gt;kleur = $kleur;<br />
$this-&gt;nummerbord = $nummerbord;<br />
//we willen niet dat hier de lichten aan kunnen gaan!<br />
//$this-&gt;lichten = rand(0, 1);<br />
}</p>
<p>public function switchLichten()<br />
{<br />
return false;<br />
}<br />
}</p>
<p>En voor de bmw:</p>
<p><code>class BMW extends Auto<br />
{<br />
public function handrem(){} //geen handrem meer!</code></p>
<p>public function kijkOpSnelheidsmeter()<br />
{<br />
return $this-&gt;snelheid + rand(-10, 10);<br />
}<br />
}</p>
<p>Zoals je ziet kost het dus helemaal geen moeite om 3 verschillende auto’s maken!</p>
<h2>Laat maar zien hoe makkelijk je dit gebruikt dan!</h2>
<p>Oke, hoe je het gebruikt is eigenlijk gewoon hetzelfde als met een normale klasse! Ik zal jullie ff een voorbeeldcode geven om het uit te kunnen testen <img src='http://webmasterplein.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Bekijk die <a href="/blog/uploads/posts/php-oop-we-extenden-onze-kennis/auto.php.html" target="_blank">hier</a>, <a href="/blog/uploads/posts/php-oop-we-extenden-onze-kennis/auto.class.php.html" target="_blank">de uiteindelijke versie van de klassen </a>is hier te vinden.<br />
Maar, waarvoor kan ik dit dan gebruiken!<br />
Het kunnen extenden van klasses is erg handig bij het gebruik maken van <a href="http://webmasterplein.net/blog/2008/12/php-fouten-afhandelen-met-exceptions/">Exceptions</a>. Ook is het erg handig als je een systeem maakt dat kan worden gedownload/gekocht door iedereen! Dan kun je een db klasse maken die alle standaard dingen met de db afhandeld, een mysql klasse maken die db extend en alle dingen doet waarvoor het type nodig is. En dan zo ook een pgsql klasse maken enz.</p>
<h2>Tja, dat was het..</h2>
<p>Ik hoop dat je het nu begrijpt en kunt toepassen. Snap je iets niet of wil je nog iets anders weten, moet ik nog iets anders behandelen? Vraag het in de comments of op het forum! En onthoud: nog een keer lezen en dingen uitproberen is gratis!</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/12/php-oop-we-extenden-onze-kennis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP: Fouten afhandelen met Exceptions</title>
		<link>http://webmasterplein.net/blog/2008/12/php-fouten-afhandelen-met-exceptions/</link>
		<comments>http://webmasterplein.net/blog/2008/12/php-fouten-afhandelen-met-exceptions/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 20:49:05 +0000</pubDate>
		<dc:creator>DoubleJ</dc:creator>
				<category><![CDATA[Scripten]]></category>
		<category><![CDATA[Exceptions]]></category>
		<category><![CDATA[foutafhandeling]]></category>
		<category><![CDATA[geavanceerde technieken]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=132</guid>
		<description><![CDATA[Met de komst van php 5, heeft php een nieuwe manier geïntroduceerd waarmee je fouten kan afhandelen in je code. Deze manier is het opvangen van exceptions, welke jouw code genereert. Voor iedereen die al eens met een object georiënteerde taal heeft geprogrammeerd, zoals met JAVA, zal deze wijze totaal niet vreemd zijn.
Om uit te [...]]]></description>
			<content:encoded><![CDATA[<p>Met de komst van php 5, heeft php een nieuwe manier geïntroduceerd waarmee je fouten kan afhandelen in je code. Deze manier is het opvangen van exceptions, welke jouw code genereert. Voor iedereen die al eens met een object georiënteerde taal heeft geprogrammeerd, zoals met JAVA, zal deze wijze totaal niet vreemd zijn.</p>
<p>Om uit te leggen hoe je van deze wijze van  fouten afhandeling gebruik kan maken, zal ik dit uitleggen aan de hand van een programmeervoorbeeld. In dit programmeervoorbeeld haal ik uit een tabel met berichten, de berichttitel, in dit geval gaan we van een phpBB tabel uit.</p>
<p><span id="more-132"></span></p>
<h3>Hoe doen we het nu</h3>
<p>Dit artikel gaat er van uit dat je kennis hebt van hoe object georienteerd programmeren in php werkt. Zo niet is het handig om eerst <a title="Object Georienteerd programmeren" href="http://webmasterplein.net/blog/2008/11/php-oop-wat-en-hoe/">dit artikel</a> aandachtig door te nemen.</p>
<p>Allereerst begin ik met de manier waarop normaal in PHP fouten die optreden worden afgehandeld. Hiervoor heb ik een bestand gemaakt met een aantal aangepaste SQL functies, om de omvang van het bericht te minimaliseren zal ik steeds naar dit SQL bestand verwijzen. We beginnen met ons eerste <a href="http://webmasterplein.net/blog/uploads/posts/fouten-afhandelen-met-exceptions/sql_normal.html">sql_bestand</a>.</p>
<p>Onderstaande code zal uit de database de onderwerpen van de berichten halen, en deze weergeven op je pagina.</p>
<p><code>&lt;?php<br />
include('sql_none.php');<br />
$db = 'phpbb';<br />
$host = 'localhost';<br />
$pass = '';<br />
$user = 'root';if (!($connection = connect($user, $pass, $host, $db)))<br />
{<br />
die('Failed to connect to DB');<br />
}$sql = 'SELECT post_subject FROM phpbb_posts';if (!($result = sql_query($sql, $connection)))<br />
{<br />
die('Failed to query DB');<br />
}</p>
<p>while ($row = sql_fetch_array($result))<br />
{<br />
echo $row['post_subject'] . '<br />
';<br />
}<br />
if (!sql_close($connection))<br />
{<br />
die('Failed to close DB');<br />
}<br />
exit;<br />
?&gt;</p>
<p></code></p>
<p>Door gebruik te maken van de <strong>false </strong>uitkomsten van de verschillende SQL functies, kunnen we controleren of een functie gelukt is of niet. Wat hier gelijk opvalt, is dat de foutverwerking in de code zit verweven door middel van de <strong>if-then-else</strong> statements. Doordat de fouten verwerking binnen in je code zit, kan dit soms er voor zorgen dat je code niet heel duidelijk wordt. Helaas is bovenstaande code niet dermate complex om dit te kunnen weergeven. Het idee achter exceptions is dus ook onder andere het scheiden van foutafhandeling van je daadwerkelijke code geweest. Verder kun je het ook heel handig gebruiken om je fouten te identificeren. We gaan nu verder in op hoe je Exceptions zou kunnen toepassen op bovenstaande code.</p>
<h3>Implementeren van exceptions</h3>
<p>Om beter te begrijpen wat het volgende codevoorbeeld doet, is het eerst belangrijk om te weten wat er nou precies gebeurd wanneer er een Exception optreed. De constructie die achter Exceptions zit is de volgende:</p>
<ol>
<li>Je voert een functie uit.</li>
<li>Er treed een fout op in de functie, de functie gooit hierop een Exception. Keyword hierbij is <code>throw</code>.</li>
<li>Je script gaat op zoek naar de eerst volgende Exception vanger. Keyword hierbij is <code>catch</code>.</li>
<li>Je script voert de code uit, die bij deze Exception opvanger staat.</li>
<li>Je script gaat hieronder verder.</li>
</ol>
<p>Belangrijk hier om te weten is, dat alle code tussen de functie die de Exception laat optreden en de opvanger van de Exception <strong>niet</strong> wordt uitgevoerd.  Maar wat is nu precies die Exception. Exception is een class binnen php. Wanneer er een fout optreed in je functie, maak je een instance aan van de Exception class, waarna je deze class laat gooien. In je php code ziet dat er op de volgende wijze uit:</p>
<p><code>if ($error) throw new Exception('Een fout');</code></p>
<p>Wanneer je error <strong>true</strong> is, zal deze code een Exception gooien, met de door jouw ingevoerde foutmelding in de vorm van een <strong>string</strong>. Het is niet verplicht om een string mee te geven aan de functie, maar dit is voor jezelf wel handig voor het debuggen. Wanneer we deze code implementeren levert ons dat het volgende <a href="http://webmasterplein.net/blog/uploads/posts/fouten-afhandelen-met-exceptions/sql_exception.html">sql_bestand</a> op. In plaats van dat we <code>return false</code> gebruiken om een fout aan te geven, gooien we nu een exception. Wanneer de exception gegooid wordt, zal de functie stoppen en zal in de code gezocht worden naar de eerst volgende Exception vanger.</p>
<h3>Opvangen van Exceptions</h3>
<p>We hebben nu dus functies die Exceptions gooien, wanneer er iets fout gaat. Echter hebben we daar niets aan als we deze ook niet kunnen opvangen. De code om dit te doen ziet er &#8217;schematisch&#8217; ongeveer het volgende uit: Probeer { code } vang op { exception }.</p>
<p>In php code ziet dit er als volgt uit:</p>
<p><code>try<br />
{<br />
do_stuff();<br />
}<br />
catch (Exception $e)<br />
{<br />
echo $e-&gt;getMessage();<br />
}</code></p>
<p>Er wordt geprobeerd om de code die in het <strong>try</strong> gedeelte staat, uit te voeren. Wanneer er echter een een Exception optreed zal <strong>Exception</strong> optreed, zal het script springen naar de eerst volgende <strong>catch</strong> statement wat bij die Exception hoort en de code die hierin staat uitvoeren. Wanneer we dit gaan toepassen op ons vorige code voorbeeld, ziet onze code er als volgt uit:</p>
<p><code>&lt;?php<br />
include('sql_general.php');<br />
try<br />
{<br />
$db = 'phpbb';<br />
$host = 'localhost';<br />
$pass = '';<br />
$user = 'root';$connection = connect($user, $pass, $host, $db);$sql = 'SELECT post_subject FROM phpbb_posts';$result = sql_query($sql, $connection);</p>
<p>while ($row = sql_fetch_array($result))<br />
{<br />
echo $row['post_subject'] . '<br />
';<br />
}<br />
sql_close($connection);<br />
}<br />
catch (Exception $e)<br />
{<br />
echo 'Caught: ' .$e-&gt;getMessage(). '<br />
';<br />
}<br />
?&gt;</p>
<p></code></p>
<p>Het eerste wat opvalt is dat nu de foutafhandeling compleet los staat van de rest van je code, wat resulteert in beter leesbare code wanneer je aan de slag gaat met complexere scripts. Daarnaast zien we ook een bepaalde functie naar voren komen welke onderdeel is van de Exception class. <strong>getMessage()</strong> print de fout string, die jij in je Exception declaratie hebt meegegeven. Hiermee kan je bijvoorbeeld aangeven waar je Exception is opgetreden.</p>
<p>Al met al bied bovenstaande code een heleboel leuke mogelijkheden, echter is dit nog niet erg handig nog in gebruik, omdat ik hier alleen maar een tekst string heb die mij verteld welke foutmelding er precies is geweest. Alle foutmeldingen zijn van het type Exception en dat is slechts een type.</p>
<h3>Geavanceerde technieken</h3>
<p>En nu komt dan eindelijk een van de grote voordelen om de hoek kijken die het object georiënteerd programmeren met zich meebrengt, namelijk het feit dat ik een class kan uitbreiden. In mijn bovenstaande code voorbeeld zou je bijvoorbeeld kunnen denken dat het handig is om de volgende foutmeldingen te kunnen waarnemen:</p>
<ul>
<li>Connectie fout</li>
<li>Database selectie fout</li>
<li>Etc.</li>
</ul>
<p>We kunnen dus onze eigen Exceptions creëren, bijvoorbeeld:<br />
<code>class ConnectException extends Exception { }</code><br />
Maar dat is niet het enige. We kunnen ook meerdere <code>catch</code> clausules onder elkaar maken, waarmee we de verschillende Exceptions kunnen opvangen, bijvoorbeeld:</p>
<p><code>catch (FirstException $e) { echo $e-&gt;getMessage(); }<br />
catch (SecondException $e) { echo $e-&gt;getMessage(); }</code></p>
<p>Hiermee kunnen we per fout dus een apart stukje code aanroepen dat afgehandeld wordt wanneer een bepaalde fout optreed. We kunnen dus nu ons <a href="http://webmasterplein.net/blog/uploads/posts/fouten-afhandelen-met-exceptions/sql_costum.html">sql_bestand</a> aanpassen en deze eigen foutmeldingen toepassen. En wanneer we ook ons script aanpassen komt het er als volgt uit te zien:</p>
<p><code>&lt;?php<br />
include('sql_costumised.php');<br />
try<br />
{<br />
$db = 'phpbb';<br />
$host = 'loalhost';<br />
$pass = '';<br />
$user = 'root';$connection = connect($user, $pass, $host, $db);$sql = 'SELECT post_subject FROM phpbb_posts';$result = sql_query($sql, $connection);</p>
<p>while ($row = sql_fetch_array($result))<br />
{<br />
echo $row['post_subject'] . '<br />
';<br />
}<br />
sql_close($connection);<br />
}<br />
catch (SelectConnectException $e)<br />
{<br />
// eerst deze afvangen, want anders vangt de parent van deze class (Connect Exception) deze error op.<br />
echo 'Caught: ' .$e-&gt;getMessage(). '<br />
';<br />
echo 'Handel hier dingen af wanneer je een fout hebt bij het selecteren van de DB.';<br />
// Een voorbeeld van een handeling zou de volgende kunnen zijn: er is nog een db verbinding open, dus sluit deze.<br />
mysql_close();<br />
}<br />
catch (ConnectException $e)<br />
{<br />
echo 'Caught: ' .$e-&gt;getMessage(). '<br />
';<br />
echo 'Handel hier dingen af wanneer je fouten krijgt bij de verbinding met de database server.';<br />
}<br />
catch (QueryException $e)<br />
{<br />
echo 'Caught: ' .$e-&gt;getMessage(). '<br />
';<br />
echo 'Handel hier dingen af, wanneer je sql query fouten oplevert.';<br />
// Ook hier zou je eventueel de database verbinding nog kunnen verbreken, immers deze verbinding is er wel omdat bovenstaande<br />
// Exceptions niet zijn geweest.<br />
}<br />
catch (CloseException $e)<br />
{<br />
echo 'Caught: ' .$e-&gt;getMessage(). '<br />
';<br />
echo 'Handel hier dingen af, wanneer je de database verbinding niet correct afsluit.';<br />
}<br />
// Vang alle overige Exceptions<br />
catch (Exception $e)<br />
{<br />
// Exception is de parent van ALLE exceptions, dus deze zal alle overige exceptions afvangen.<br />
// Gebruik deze dus ook ALTIJD aan het einde van je catch lijst, zodat je specifieke fouten wel kan opvangen.<br />
echo 'Caught: ' .$e-&gt;getMessage(). '<br />
';<br />
}<br />
?&gt;</p>
<p></code></p>
<p>De exception opvangers zien er nu zeer complex uit, maar bovenstaande constructie bied een legio aan mogelijkheden. Zo kun je bepaalde stukken code uitvoeren wanneer je een bepaalde fout krijgt, je kunt bijvoorbeeld de sql verbinding afbreken.</p>
<p>Belangrijk is het wel dat wanneer je je eigen Exceptions gaat creëren, dat je wel al je Exceptions die kunnen optreden, ook daadwerkelijk opvangt. Immers het php script zal pas verdergaan met de code, na je exception opvanger.</p>
<p>Ik hoop dat ik jullie hiermee een beetje een introductie heb kunnen geven in deze nieuwe manier van het opvangen van fouten die optreden tijdens het uitvoeren van je code en hoop natuurlijk dat dit je helpt bij het schrijven van betere code voor de toekomst.</p>
<p>Voor meer informatie over hoe Exceptions werken, kijk je het best even op de site van <a title="Exceptions - php.net" href="http://nl2.php.net/manual/en/language.exceptions.php">php.net over Exceptions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/12/php-fouten-afhandelen-met-exceptions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gmail gadgets</title>
		<link>http://webmasterplein.net/blog/2008/11/gmail-gadgets/</link>
		<comments>http://webmasterplein.net/blog/2008/11/gmail-gadgets/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 10:15:53 +0000</pubDate>
		<dc:creator>Derk</dc:creator>
				<category><![CDATA[Leesvoer]]></category>
		<category><![CDATA[Webtalk]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[gmail]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=109</guid>
		<description><![CDATA[Gmail wordt steeds uitgebreider en kan steeds meer. Sinds kort zijn er in de google labs een paar extra probeersels verschenen, waaronder de optie om zelf gadgets toe te voegen. Deze blog gaat je vertellen hoe je aan gadgets komt en deze toevoegd.]]></description>
			<content:encoded><![CDATA[<p><a href="http://webmasterplein.net/blog/uploads/2008/11/mod_addgadgetbyurl.png"><img class="alignleft size-medium wp-image-121" title="mod_addgadgetbyurl" src="http://webmasterplein.net/blog/uploads/2008/11/mod_addgadgetbyurl.png" alt="" width="175" height="80" style="float:left;" /></a>Gmail wordt steeds uitgebreider en kan steeds meer. Sinds kort zijn er in de Google Labs een paar extra probeersels verschenen, waaronder de optie om zelf gadgets toe te voegen. Leuke feature, maar nu moeten we natuurlijk wel gadgets zien te krijgen.</p>
<p><span id="more-109"></span></p>
<p>Als we binnen Google Labs de functie aan zetten kunnen we zelf middels een URL (in de settings van gmail) een gadget toevoegen. Allemaal leuk en aardig, maar nu moeten we natuurlijk wel gadgets zien te krijgen. Er zijn nog maar weinig gadgets speciaal voor gmail gemaakt (onderaan de blog volgen er een paar).</p>
<p>Het is mogelijk om de gadgets die je aan je Google startpagina kan toevoegen toe te voegen aan je Gmail. Hoe doen we dit? Ga naar je iGoogle en klik op nieuwe gadgets toevoegen. Zoek een gadget uit en klik op de titel. Er verschijnt een optie in beeld om de gadget te delen met anderen. Kopieer het link adres van de knop &#8220;deze gadget delen&#8221; en plak deze in het invoer veld voor Google gadgets. De URL dient nog wel wat bewerkt te worden, namelijk, het eerste stuk moet eraf geknipt worden. Als we knippen op de &amp;url= houden we een url over naar een xml document.</p>
<p>Voorbeeldje, de volgende link is van de Buienradar, voor de pagina &#8220;Deze gadget delen&#8221;:<br />
http://www.google.nl/ig/directory?type=gadgets&amp;url=www.30minutelunchbreak.com/gadgets/weer.xml#</p>
<p>Nu knippen we hem af en wordt de URL:<br />
www.30minutelunchbreak.com/gadgets/weer.xml</p>
<p>Deze gadget kunnen we toevoegen in ons Gmail account.</p>
<p>Nu werkt dit niet met alle gadgets in de iGoogle database, maar alleen met de simpelere.  Echter denk ik , dat je google account redelijk te vullen is met het aantal gadgets wat hier te vinden is.</p>
<p>Enkele voorbeelden van gadgets die speciaal voor gmail gemaakt zijn:</p>
<p>Een takenlijstje:<br />
<a href="http://mostlycloudy.net/~dnl2ba/subpages/gdir-test/tasklist.xml"> http://mostlycloudy.net/~dnl2ba/subpages/gdir-test/tasklist.xml</a></p>
<p>Youtube video&#8217;s:<br />
<a href="http://www.google.com/ig/modules/youtube_videos.xml"> http://www.google.com/ig/modules/youtube_videos.xml</a></p>
<p>Mijnenveger:<br />
<a href="http://gmail.minesweeper.vedelaar.nl/minesweeper.xml"> http://gmail.minesweeper.vedelaar.nl/minesweeper.xml</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/11/gmail-gadgets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP OOP &#8211; wat en hoe?</title>
		<link>http://webmasterplein.net/blog/2008/11/php-oop-wat-en-hoe/</link>
		<comments>http://webmasterplein.net/blog/2008/11/php-oop-wat-en-hoe/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 22:04:52 +0000</pubDate>
		<dc:creator>Libia</dc:creator>
				<category><![CDATA[Scripten]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=97</guid>
		<description><![CDATA[Veel beginnende php-ers hebben moeite met OOP. Vaak hebben ze moeite met het begrijpen waar OOP nou eigenlijk voor dient en hoe je dit dan het beste kunt gebruiken. In deze tutorial zal ik uitleggen wat het idee achter OOP is en de basis van hoe je dit gebruikt.
In deze tutorial ga ik er wel [...]]]></description>
			<content:encoded><![CDATA[<p>Veel beginnende php-ers hebben moeite met OOP. Vaak hebben ze moeite met het begrijpen waar OOP nou eigenlijk voor dient en hoe je dit dan het beste kunt gebruiken. In deze tutorial zal ik uitleggen wat het idee achter OOP is en de basis van hoe je dit gebruikt.</p>
<p>In deze tutorial ga ik er wel vanuit dat je minimaal PHP versie 5.* gebruikt, voor deze versie is de ondersteuning van OOP namelijk heel slecht.</p>
<p><span id="more-97"></span></p>
<h2>Dus.. wat is OOP nou eigenlijk?</h2>
<p>OOP staat voor object oriented programming. Dit is dus het gebruiken van objecten bij het programmeren. Vaak wordt OOP met klassen (classes) verward, maar dit is niet helemaal het zelfde, OOP gaat namelijk ook over de manier waarop je die gebruikt enzovoort.</p>
<p>OOP bestaat trouwens niet in PHP, maar in de meeste andere talen. Van alle talen waarin OOP ondersteund wordt is de ondersteuning van PHP zelfs een van de minst uitgebreide.</p>
<h2>Oke! Maar wat zijn die klassen dan?</h2>
<p>De basis van OOP zijn de klassen. Een klasse (class in PHP) kun je wel zien als een blauwdruk of gewoon een object (daar komt de eerste O in OOP dus vandaan <img src='http://webmasterplein.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). In een klasse stop je methods. Dit zijn eigenlijk gewoon functies, maar dan in een klasse. Daarnaast kun je er ook variabelen in stoppen. Eigenlijk is een klasse dus een verzameling van functies die over gezamenlijke variabelen beschikken.</p>
<h2>Juist ja, maar wat is dan het nut? Kan ik niet gewoon functies gebruiken?</h2>
<p>Het nut van een functie is, dat je een bepaald stuk code op meerdere plaatsen kunt gebruiken, terwijl je de code maar één keer typt! Het nut van een klasse is dat je verschillende functies samen laat werken. In sommige gevallen is het dus handiger om functies te gebruiken en in sommige gevallen is het handiger om klassen te gebruiken.</p>
<h2>Hoe maak ik dan zo&#8217;n klasse?</h2>
<p>Even geduld, ik heb eerst nog één kleine opmerking. Ik ga in deze tut een voorbeeld van een klasse voor een auto gebruiken, natuurlijk heb je hier niets aan in je code, maar het is wel handig om aan te tonen wat je met klassen kunt!</p>
<p>Een klasse openen in PHP is nog makkelijker dan een functie openen, je doet namelijk gewoon dit (let op, de naam is net zoals bijna alles in PHP <strong>hoofdlettergevoelig</strong>):</p>
<p>[code lang="php"]<?php<br />
class Auto<br />
{<br />
}<br />
?>[/code]</p>
<p>Een klasse op zich kan niet erg veel.. sterker nog, het kan helemaal niets! Elke keer als je een bepaalde klasse wilt gebruiken (je kunt elke klasse natuurlijk vaker gebruiken, zelfs tegelijkertijd), moet je er een instantie van maken. Vanuit deze instantie gaan we later ook weer de methods aanroepen.</p>
<p>Het maken van een instantie doe je zo:</p>
<p>[code lang="php"]<?php<br />
$bmw = new Auto(); //Dit wordt mijn BMW!<br />
$ferrari = new Auto(); //Dit wordt mijn Ferrari, omdat de variabele naam anders is dan die van de BMW, zullen ze elkaar niet lastig vallen!<br />
?>[/code]</p>
<h2>Maar, hier kan ik toch helemaal niets mee?</h2>
<p>Dat heb je heel goed gezien! Om er wel iets mee te kunnen gaan we nu eerst variabelen toe voegen. Deze variabelen zijn wel iets anders dan gewone variabelen, je kunt ze namelijk: private, protected en public maken.</p>
<ul class="unIndentedList">
<li> <span style="underline;">Private</span> variabelen kunnen alleen worden benaderd vanuit de klasse waarvan ze onderdeel zijn.</li>
<li> <span style="underline;">Protected</span> variabelen kunnen alleen worden benaderd vanuit de klasse waarvan ze onderdeel zijn en vanuit klassen die een aanvulling zijn op deze klasse.</li>
<li> <span style="underline;">Public</span> variabelen kunnen ‘overal&#8217; vandaan worden benaderd.</li>
</ul>
<p>Een variabele moet aan het begin van de klasse worden aangegeven, je kunt daar kiezen voor het soort variabele, de naam van de variabele en eventueel de waarde. Dit kun je zo doen:</p>
<p>[code lang="php"]<?php<br />
[type] $[naam]; //variabele zonder waarde<br />
[type] $[naam] = [waarde]; //variabele met waarde<br />
?>[/code]</p>
<h2>Laat me dan nu variabelen toevoegen aan onze klasse!</h2>
<p>In onze klasse gaan we variabelen gebruiken om de kenmerken van onze auto aan te geven: merk, kleur, snelheid, nummerbord, lichten (aan/uit). Dan krijgen we dus zoiets:</p>
<p>[code lang="php"]<?php<br />
class Auto<br />
{<br />
public $merk = 'onbekend';<br />
public $kleur = ‘onbekend';<br />
public $nummerbord = 'on-be-kend';<br />
protected $snelheid = 0;<br />
protected $lichten = false; //lichten standaard uit<br />
}<br />
?>[/code]</p>
<p>Het is niet nodig om de public variabelen van de protected variabelen te scheiden, maar dat doe ik hier gewoon voor de duidelijkheid.</p>
<h2>Ik wil de variabelen nu kunnen aanpassen!</h2>
<p>Om dingen uit een instantie te benaderen gebruik je in PHP -> . In ons voorbeeld kunnen we dus dit gebruiken:</p>
<p>[code lang="php"]<?php<br />
$bmw = new Auto(); //Dit wordt mijn BMW!<br />
$ferrari = new Auto(); //Dit wordt mijn Ferrari, omdat de variabele naam anders is dan die van de BMW, zullen ze elkaar niet lastig vallen!</p>
<p>$ferrari->merk = ‘Ferrari';<br />
$ferrari->kleur = ‘rood' ;<br />
$ferrari->nummerbord = ‘PH-PO-OP';</p>
<p>echo $ferrari->merk . ‘ '; //Ferrari<br />
echo $ferrari->kleur . ‘'; //rood<br />
echo $ferrari->nummerbord . ‘</p>
<p>'; //PH-PO-OP</p>
<p>echo $bmw->merk . ‘</p>
<p>' ; //onbekend</p>
<p>$bmw->merk = ‘BMW';</p>
<p>echo $bmw->merk; //BMW<br />
?>[/code]</p>
<h2>Tja, een auto, maar hij kan toch helemaal niets!</h2>
<p>Om de auto dingen te laten doen, gaan we de methods gebruiken, maar wat wel handig is om eerst te weten: variabelen van de klasse kun je binnen de klasse aanroepen met $this.</p>
<p>Omdat een method ongeveer het zelfde is als een functie, is de manier hoe je hem aanmaakt ook ongeveer hetzelfde. Het enige verschil is, dat je weer private, protected en public moet gebruiken! Dit doe je dan dus zo:</p>
<p>[code lang="php"]<?php<br />
[type] function [naam]([parameters])<br />
{<br />
}<br />
?>[/code]</p>
<p>Laten we dit dan maar aan onze klasse toe gaan voegen, zodat het eindelijk echt ergens op begint te lijken!</p>
<p>[code lang="php"]<?php<br />
class Auto<br />
{<br />
public $merk = ‘onbekend';<br />
public $kleur = ‘onbekend';<br />
public $nummerbord = ‘on-be-kend';<br />
protected $snelheid = 0;<br />
protected $lichten = false; //lichten standaard uit</p>
<p>public function geefGas($snelheid = 5)<br />
{<br />
$this->snelheid += $snelheid; //Let op dat je hier niet in de war raakt!</p>
<p>echo ‘Vroem!'; //normaal echo je niet in een method, maar anders wordt het wel erg omslachtig!<br />
}</p>
<p>public function geefMinderGas($snelheid = 5)<br />
{<br />
$this->snelheid -= $snelheid; //natuurlijk kun je dit ook bereiken met de vorige method, bij een snelheid van -5 <img src='http://webmasterplein.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>echo ‘Pfffff!';<br />
}</p>
<p>public function handrem()<br />
{<br />
$snelheid = $this->snelheid; //de oude snelheid bewaren</p>
<p>$this->snelheid = 0;</p>
<p>echo ‘IIIIIIIEEEEEEEE!';</p>
<p>$this->botsing($snelheid); //roep een andere method aan<br />
}</p>
<p>public function switchLichten()<br />
{<br />
$this->lichten = !$this->lichten;</p>
<p>return $this->lichten;<br />
}</p>
<p>private function botsing($beginsnelheid)<br />
{<br />
if(!rand(0, 9) || $beginsnelheid > 100 || $beginsnelheid < -100)<br />
{<br />
echo ‘BOEM!';<br />
}<br />
}<br />
}<br />
?>[/code]</p>
<h2>Hoe gebruik ik deze methods?</h2>
<p>Een method gebruiken is het zelfde als een variabele gebruiken! We kunnen nu dus bijvoorbeeld zo&#8217;n code krijgen:</p>
<p>[code lang="php"]<br />
<?php<br />
$bmw = new Auto(); //Dit wordt mijn BMW!<br />
$ferrari = new Auto(); //Dit wordt mijn Ferrari, omdat de variabele naam anders is dan die van de BMW, zullen ze elkaar niet lastig vallen!<br />
$ferrari->merk = 'Ferrari';<br />
$ferrari->kleur = ‘rood' ;<br />
$ferrari->nummerbord = ‘PH-PO-OP';<br />
echo $ferrari->merk . ‘ '; //Ferrari<br />
echo $ferrari->kleur . ‘'; //rood<br />
echo $ferrari->nummerbord . ‘</p>
<p>'; //PH-PO-OP<br />
echo $bmw->merk . ‘</p>
<p>' ; //onbekend<br />
$bmw->merk = ‘BMW';<br />
echo $bmw->merk; //BMW<br />
echo ‘</p>
<p>';<br />
//En nu de methods (ik gebruik ff alleen ferrari)<br />
$ferrari->geefGas();<br />
$ferrari->geefMinderGas();<br />
$ferrari->geefGas(100);<br />
$ferrari->geefMinderGas(10);<br />
$ferrari->geefGas(47);<br />
$ferrari->geefMinderGas(38); //snelheid wordt nu 99 als ik me niet vergis..<br />
$ferrari->handrem();</p>
<p>$rand = rand(5, 15);<br />
for($i  = 0; $i < $rand; $i++)<br />
{<br />
$ferrari->switchLichten();<br />
}</p>
<p>echo ($ferrari->switchLichten()) ? ‘Aan' : ‘Uit';<br />
?><br />
[/code]</p>
<h2>Dat is stoer! Het is alleen wel een beetje omslachtig om op deze manier de eigenschappen te moeten aangeven!</h2>
<p>Er zijn ook nog speciale methods, deze beginnen met twee liggende streepjes __ . één daarvan is de constructor. Als we deze toevoegen aan onze klasse, dan komt hij er zo uit te zien:</p>
<p>[code lang="php"]<?php<br />
class Auto<br />
{<br />
	public $merk = ‘onbekend';<br />
	public $kleur = ‘onbekend';<br />
	public $nummerbord = ‘on-be-kend';<br />
	protected $snelheid = 0;<br />
	protected $lichten = false; //lichten standaard uit</p>
<p>	public function __construct($merk, $kleur, $nummerbord)<br />
	{<br />
		$this->merk = $merk;<br />
		$this->kleur = $kleur;<br />
		$this->nummerbord = $nummerbord;</p>
<p>		$this->lichten = rand(0, 1);<br />
	}</p>
<p>	public function geefGas($snelheid = 5)<br />
	{<br />
		$this->snelheid += $snelheid; //Let op dat je hier niet in de war raakt!</p>
<p>		echo ‘Vroem!'; //normaal echo je niet in een method, maar anders wordt het wel erg omslachtig!<br />
	}</p>
<p>	public function geefMinderGas($snelheid = 5)<br />
	{<br />
		$this->snelheid -= $snelheid; //natuurlijk kun je dit ook bereiken met de vorige method, bij een snelheid van -5 <img src='http://webmasterplein.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>		echo ‘Pfffff!';<br />
	}</p>
<p>	public function handrem()<br />
	{<br />
		$snelheid = $this->snelheid; //de oude snelheid bewaren</p>
<p>		$this->snelheid = 0;</p>
<p>		echo ‘IIIIIIIEEEEEEEE!';</p>
<p>		$this->botsing($snelheid); //roep een andere method aan<br />
	}</p>
<p>	public function switchLichten()<br />
	{<br />
		$this->lichten = !$this->lichten;</p>
<p>		return $this->lichten;<br />
	}</p>
<p>	private function botsing($beginsnelheid)<br />
	{<br />
		if(!rand(0, 9) || $beginsnelheid > 100 || $beginsnelheid < -100)<br />
		{<br />
			echo ‘BOEM!';<br />
		}<br />
	}<br />
}<br />
?>[/code]</p>
<p>Dit kunnen we nu gebruiken om op een snelle manier eigenschappen aan een instantie mee te geven! Omdat het geen normale method is, kun je wel verwachten dat je hem ook niet zo aanroept! De construct method wordt aangeroepen als een nieuwe instantie van de klasse wordt gemaakt:</p>
<p>[code lang="php"]<?php<br />
$bmw = new Auto(‘BMW', ‘Pimpel paars met zilveren sterretjes', ‘OO-PP-HP'); //Dit wordt mijn BMW!<br />
$ferrari = new Auto(‘Ferrari', ‘rood', ‘PH-PO-OP'); //Dit wordt mijn Ferrari, omdat de variabele naam anders is dan die van de BMW, zullen ze elkaar niet lastig vallen!</p>
<p>echo $ferrari->merk . ‘ '; //Ferrari<br />
echo $ferrari->kleur . ‘'; //rood<br />
echo $ferrari->nummerbord . ‘</p>
<p>'; //PH-PO-OP</p>
<p>echo $bmw->merk; //BMW</p>
<p>echo ‘</p>
<p>';</p>
<p>//En nu de methods (ik gebruik ff alleen ferrari)<br />
$ferrari->geefGas();<br />
$ferrari->geefMinderGas();<br />
$ferrari->geefGas(100);<br />
$ferrari->geefMinderGas(10);<br />
$ferrari->geefGas(47);<br />
$ferrari->geefMinderGas(38); //snelheid wordt nu 99 als ik me niet vergis..<br />
$ferrari->handrem();</p>
<p>$rand = rand(5, 15);<br />
for($i  = 0; $i < $rand; $i++)<br />
{<br />
	$ferrari->switchLichten();<br />
}</p>
<p>echo ($ferrari->switchLichten()) ? ‘Aan' : ‘Uit';<br />
?>[/code]</p>
<p>Zo dat maakt je code weer lekker een stuk korter!</p>
<h2>Bedankt! Nu snap ik het!</h2>
<p>Graag gedaan! Tip: zorg dat je alles wat hier boven staat goed snapt en ga dan zelf experimenteren. En reacties, commentaar, opmerkingen, aanmerkingen, verbeteringen, enz. zijn natuurlijk altijd welkom <img src='http://webmasterplein.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/11/php-oop-wat-en-hoe/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Single-Quotes VS. Double-Quotes</title>
		<link>http://webmasterplein.net/blog/2008/10/single-quotes-vs-double-quotes/</link>
		<comments>http://webmasterplein.net/blog/2008/10/single-quotes-vs-double-quotes/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 16:37:20 +0000</pubDate>
		<dc:creator>Remi</dc:creator>
				<category><![CDATA[Scripten]]></category>
		<category><![CDATA[double quotes]]></category>
		<category><![CDATA[php echo]]></category>
		<category><![CDATA[php variabelen]]></category>
		<category><![CDATA[quotes]]></category>
		<category><![CDATA[single quotes]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=77</guid>
		<description><![CDATA[Iedereen die begint met programmeren komt regelmatig single-quotes en double-quotes tegen. En weet vaak niet het verschil, betekent het wat anders? Doet het wat anders? Of is het ene makkelijker dan het andere. In dit blog artikeltje probeer ik hier iets meer uitleg over te geven.

Quotes
Quotes is een Engelse term voor aanhalingstekens, maar aangezien in [...]]]></description>
			<content:encoded><![CDATA[<p>Iedereen die begint met programmeren komt regelmatig single-quotes en double-quotes tegen. En weet vaak niet het verschil, betekent het wat anders? Doet het wat anders? Of is het ene makkelijker dan het andere. In dit blog artikeltje probeer ik hier iets meer uitleg over te geven.</p>
<p><span id="more-77"></span></p>
<p><strong>Quotes</strong></p>
<p>Quotes is een Engelse term voor aanhalingstekens, maar aangezien in het programmeren Engelse terminologie wordt gebruikt hebben we het over quotes.</p>
<p>Single-quote: <em><strong>&#8216;</strong>Hello<strong>&#8216;</strong></em></p>
<p>Double-quote: <em><strong>&#8220;</strong>Hello<strong>&#8220;</strong></em></p>
<p><strong>Verschillen</strong></p>
<p>Ik ga de verschillen illustreren in php, deze verschillen liggen meestal ook zo bij andere programmeertalen (maar dus niet altijd)</p>
<p style="30px;"><span style="underline;">Single-Quotes</span></p>
<p><code><span class="syntaxdefault"><span style="#003366;">$sString</span> </span><span style="#008000;"><span class="syntaxkeyword">= </span></span><span class="syntaxstring"><span style="#800000;">'World'</span> </span><span style="#008000;"><span class="syntaxkeyword">;</span></span></code></p>
<p style="30px;"><span class="syntaxcomment"><span style="#008000;">echo <span style="#800000;">&#8216;Hello $sString&#8217; </span>;</span></span></p>
<p>geeft: <em>Hello $sString</em></p>
<p style="30px;">Als je Hello World wilt krijgen, dan moet je de variabel buiten de quotes brengen:</p>
<p style="30px;"><span class="syntaxcomment"><span style="#008000;">echo <span style="#800000;">&#8216;Hello&#8217; <span style="#003366;"><span style="#008000;">. </span>$sString</span> </span>;</span></span></p>
<p><span style="#000000;">Geeft dan wel: <em>Hello World</em></span></p>
<p style="30px;"><span style="underline;">Double-Quotes</span></p>
<p><code><span class="syntaxdefault"><span style="#003366;">$sString</span> </span><span style="#008000;"><span class="syntaxkeyword">= </span></span><span class="syntaxstring"><span style="#800000;">'World'</span> </span><span style="#008000;"><span class="syntaxkeyword">;</span></span></code></p>
<p style="30px;"><span class="syntaxcomment"><span style="#008000;">echo <span style="#800000;">&#8216;Hello $sString&#8217; </span>;</span></span></p>
<p>geeft: <em>Hello World</em></p>
<p style="30px;">Ook kan je bij double-quotes de variabel buiten de quotes zetten.</p>
<p style="30px;"><span class="syntaxcomment"><span style="#008000;">echo <span style="#800000;">&#8216;Hello&#8217; <span style="#003366;"><span style="#008000;">. </span>$sString</span> </span>;</span></span></p>
<p><span style="#000000;">Geeft : <em>Hello World</em></span></p>
<p style="30px;"><strong>Wat is het best?</strong></p>
<p style="30px;">Ik zelf prefereer de single-quotes, omdat ik dit zelf duidelijker vind staan. Je maakt als programmeur zelf het verschil duidelijk tussen gewone tekst en variabelen en laat dat niet over aan de parser van php.</p>
<p>Het voordeel van double-quotes is dat het lekker snel programmeert, want je hoeft niet de hele tijd de variabelen buiten de quotes te zetten.</p>
<p>Maar ik zelf vind duidelijkheid en overzicht belangrijker dan de snelheid waar mee een script geschreven wordt, dus doe mij daarom maar de single-quotes.</p>
<p style="30px;">
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/10/single-quotes-vs-double-quotes/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Microsoft Silverlight 2, eindelijk &#8220;light up the web&#8221;?</title>
		<link>http://webmasterplein.net/blog/2008/10/microsoft-silverlight-2-eindelijk-light-up-the-web/</link>
		<comments>http://webmasterplein.net/blog/2008/10/microsoft-silverlight-2-eindelijk-light-up-the-web/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:09:47 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Algemeen]]></category>
		<category><![CDATA[Grafisch]]></category>
		<category><![CDATA[Scripten]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[interactief]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=68</guid>
		<description><![CDATA[Voor die gene die niet weten wat Silverlight is: het is de concurent van de Flash-player en is net als de Flash-player een plug-in voor browsers. Microsoft heeft gister zijn tweede versie van Silverlight geïntroduceerd. Microsoft Silverlight 2 is de opvolger van versie 1 en heeft vele veranderingen ondergaan, waaronder meer mogelijkheden tot het schrijven [...]]]></description>
			<content:encoded><![CDATA[<p>Voor die gene die niet weten wat Silverlight is: het is de concurent van de Flash-player en is net als de Flash-player een plug-in voor browsers. Microsoft heeft gister zijn tweede versie van Silverlight geïntroduceerd. Microsoft Silverlight 2 is de opvolger van versie 1 en heeft vele veranderingen ondergaan, waaronder meer mogelijkheden tot het schrijven van Silverlight applicaties.</p>
<p>Ondersteuing van .Net-framework, een deepzoom feature, advertentie weergave en betere beveiligde drm (Digital Rights Management) zijn nieuwe toevoegingen voor de nieuwe versie van Silverlight. Ook de GUI-objecten (Graphical User Interface) uit Silverlight hebben een grote verandering ondergaan, hierdoor is de applicatie overzichtelijker geworden, zowel voor de programmeur als voor de beginner in Silverlight.</p>
<p>Door de ondersteuning van .Net-framework is in Silverlight nu mogelijk om applicaties te maken in C#, Javascript, IronPython en IronRuby.</p>
<p>Silverlight 2 is downloaden op de site van <a href="http://www.microsoft.com/silverlight/" target="_blank">Microsoft Silverlight</a>. Huidige installaties van Silverlight worden automatisch geüpdate.</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/10/microsoft-silverlight-2-eindelijk-light-up-the-web/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Flash Player 10, interactieve 3D-applicaties komen tot leven!</title>
		<link>http://webmasterplein.net/blog/2008/10/flash-player-10-3d-applicaties-komen-tot-leven/</link>
		<comments>http://webmasterplein.net/blog/2008/10/flash-player-10-3d-applicaties-komen-tot-leven/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:09:39 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Algemeen]]></category>
		<category><![CDATA[Grafisch]]></category>
		<category><![CDATA[Scripten]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[10]]></category>
		<category><![CDATA[3d-animaties]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flashplayer]]></category>
		<category><![CDATA[interactief]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=70</guid>
		<description><![CDATA[Vandaag heeft Adobe een nieuwe versie van zijn reeks Flash Players uitgegeven, wel te verstaan onder de naam Flash Player 10. Adobe heeft zelf veel gedaan voor het aanspreken van de GPU (Graphics processing unit), dit is dan ook wel nodig met de 3D-applicaties die zeer gemakkelijk gemaakt kunnen worden voor deze nieuwe Flash Player.
De [...]]]></description>
			<content:encoded><![CDATA[<p>Vandaag heeft Adobe een nieuwe versie van zijn reeks Flash Players uitgegeven, wel te verstaan onder de naam Flash Player 10. Adobe heeft zelf veel gedaan voor het aanspreken van de GPU (Graphics processing unit), dit is dan ook wel nodig met de 3D-applicaties die zeer gemakkelijk gemaakt kunnen worden voor deze nieuwe Flash Player.</p>
<p>De grootste verbetering van het programma is dus het &#8217;showen&#8217; van 3D-objecten in een flash-animatie. In de eerder deze maand uitgebrachte Adobe Flash CS4 is een tool gebouwd om gemakkelijk 2D-objecten te converteren naar 3D-objecten. De nieuwe tool in het programma is de &#8216;authoringtool&#8217; en kan ingezet worden op elk figuur, zowel op tekst als op een graphic.</p>
<p>De layout van tekst kan in Flash CS4 verbeterd worden dankzij de nieuwe Flash Player. Zo kan de tekst meerdere opmaken krijgen en je kan per Frame deze opmaak ook werkelijk veranderen. Shadow en Glow zijn nieuwe onderdelen die tijdens het afspelen van de tekst-animatie blijven bestaan, maar hierdoor krijgt de GPU het soms wel moeilijk. Daarom is het bij het maken van dit soort animaties handig om de GPU aan te spreken op zijn gedrag en eventueel een andere versnelling van de GPU in te stellen.</p>
<p>Ook wat totaal niet mocht ontbreken in de nieuwe Flash Player is het animeren van HD-kwaliteit video&#8217;s, waarbij de gemiddelde HD-kwaliteit ligt op h.264 formaat. Hierdoor zullen animaties en applicaties nog mooier worden dan in de Flash Player 9 formaat. Flash Player 9 had soms in de applicaties nog moeite met oudere versies van Flash maar dat is met versie 10 helemaal verhopen. De compabiliteit van versie 10 is erg verbeterd ten opzichte van versie 9.</p>
<p>Flash Player 10 is beschikbaar voor Windows, MacOS x en Linux en is te downloaden op de website van <a href="http://www.adobe.com/products/flashplayer/" target="_blank">Adobe Flash Player</a>. Op die website zie je meteen ook al een klein voorproefje van de toekomst van de flash-animaties.</p>
<p>Afgelopen week werd Silverlight 2 ook al uitgebracht door Microsoft en bezit ook vele extra&#8217;s. Probeer zelf uit te vinden welke player jij het beste vind werken!</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/10/flash-player-10-3d-applicaties-komen-tot-leven/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Windows Cloud, cloudcomputing een hype?</title>
		<link>http://webmasterplein.net/blog/2008/10/windows-cloud-cloudcomputing-een-hype/</link>
		<comments>http://webmasterplein.net/blog/2008/10/windows-cloud-cloudcomputing-een-hype/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 18:05:20 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Algemeen]]></category>
		<category><![CDATA[Webtalk]]></category>
		<category><![CDATA[cloudcomputing]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[netwerk]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://webmasterplein.net/blog/?p=56</guid>
		<description><![CDATA[Microsoft probeert voor eind oktober een nieuwe hype de wereld in te roepen, namelijk het cloudcomputing. Microsoft heeft hiervoor het besturingssysteem Windows Cloud gemaakt, maar een naamswijziging zal nog mogelijk zijn. De naam Windows Cloud staat hier nog niet vast.
Met behulp van Windows Cloud moet het mogelijk zijn om applicaties, zoals Microsoft Office, op een [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft probeert voor eind oktober een nieuwe hype de wereld in te roepen, namelijk het cloudcomputing. Microsoft heeft hiervoor het besturingssysteem Windows Cloud gemaakt, maar een naamswijziging zal nog mogelijk zijn. De naam Windows Cloud staat hier nog niet vast.</p>
<p>Met behulp van Windows Cloud moet het mogelijk zijn om applicaties, zoals Microsoft Office, op een server te draaien vanaf de browser van een client (de gebruiker van de applicatie). <a href="http://www.cio.com/article/452163/Ballmer_Microsoft_Will_Soon_Release_Windows_Cloud_OS">Volgens</a> Steve Ballmer zal ondanks Windows Cloud de client nogsteeds gebruik maken van lokale software voor een snelle aanpassing. Windows Cloud zal vooral in openbare lokaties aanslaan, omdat je je eigen programma&#8217;s kan blijven gebruiken, ondanks dat het niet op de PC staat geïnstalleerd.</p>
<p>Bij vele mensen is bij het horen van het woord cloudcomputing niet bekend wat het nu exact betekend. Om hier alvast mee in te springen zeggen Engelse vaak &#8220;the cloud&#8221; terwijl ze &#8220;het internet&#8221; bedoelen. Het is dus eigenlijk een grote wolk waar je je zelf in bevind. De Nederlandse vertaling van &#8220;computing&#8221; is &#8220;computeren&#8221; waardoor als je de woordencombinaties samenvoegt je Internet computeren krijgt.</p>
<p>Cloudcomputing is een soort van het SaaS-computing (Software as a Service). Dat bekentend het op een afstand gebruiken van een software, die geïnstalleerd staat op een server. Zo is het voor ontwikkelaars en systeembeheerders zeer gemakkelijk om de software te updaten of te upgraden.</p>
<p>Ondanks de verwachte hoge prijs voor het cloudcomputing zal volgens Richard Stallman (oprichter van Free Software Foundation) zal het cloudcomputing een hype gaan worden. Stallman denkt dat vooral bedrijven zich met het cloudcomputing gaan bezighouden. Zo kunnen systeembeheerders van een bedrijf veel makkelijker het netwerk beheren, en alle bestanden van de werknemers staan centraal op 1 server. Mocht er een PC in een netwerk de geest geven, dan staan de documenten op de server.</p>
<p>Windows Cloud zal als kern het Hyper-V System van Microsoft hebben, en is gratis te <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=nl&amp;FamilyID=f3ab3d4b-63c8-4424-a738-baded34d24ed">downloaden</a>. Voor deze software zal de desbetreffende server wel moeten draaien op Windows Server 2008</p>
<hr />Op 9 oktober heeft Microsoft de nieuwe naam voor Windows Cloud laten weten. De roepnaam van het programma zal worden Windows Strata, en zal afkomstig zijn van een soort wolk die je in de atmosfeer kunt vinden (de stratosfeer of stratocumulus). Ook heeft het cloudcomputing met Window Strata een werkgroepnaam gekregen en dat is <a href="http://blogs.zdnet.com/microsoft/?p=1626">volgens</a> Mary-Jo Foley &#8216;Red Dog&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://webmasterplein.net/blog/2008/10/windows-cloud-cloudcomputing-een-hype/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
