<?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>Steven Sack.nl</title>
	<atom:link href="http://www.stevensack.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stevensack.nl</link>
	<description>Mijn ontdekkingen mbt PHP, MySQL en SEO</description>
	<lastBuildDate>Thu, 30 Jun 2011 10:21:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>spl_autoload, class pas inladen wanneer deze wordt aangeroepen</title>
		<link>http://www.stevensack.nl/spl_autoload/</link>
		<comments>http://www.stevensack.nl/spl_autoload/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 15:02:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[spl (Standard PHP Library)]]></category>

		<guid isPermaLink="false">http://www.stevensack.nl/?p=78</guid>
		<description><![CDATA[spl_autoload maakt het mogelijk het bestand van een class pas in te laden wanneer deze class wordt aangeroepen. Neem bijvorbeeld het volgende simpele stukje code: 1 2 &#60;?php $userData = new Database_User_GetUserData&#40;&#41;; Uiteraard moet voor het aanroepen van een class het bestand zijn ingeladen waar de class zich in bevind. Ik heb bijvoorbeeld een class [...]]]></description>
			<content:encoded><![CDATA[<p>spl_autoload maakt het mogelijk het bestand van een class pas in te laden wanneer deze class wordt aangeroepen.<br />
Neem bijvorbeeld het volgende simpele stukje code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$userData</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Database_User_GetUserData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Uiteraard moet voor het aanroepen van een class het bestand zijn ingeladen waar de class zich in bevind.<br />
Ik heb bijvoorbeeld een class geschreven voor het omzetten van een class naam naar de locatie van het bestand.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> Autoloader <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">const</span> PHP_EXTENSION <span style="color: #339933;">=</span> <span style="color: #0000ff;">'.php'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> fileLocation<span style="color: #009900;">&#40;</span><span style="color: #000088;">$className</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">DIRECTORY_SEPARATOR</span><span style="color: #339933;">,</span> <span style="color: #000088;">$className</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> autoload<span style="color: #009900;">&#40;</span><span style="color: #000088;">$className</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">fileLocation</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$className</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">PHP_EXTENSION</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Bij het aanroepen van de functie &#8216;autoload&#8217; wordt de (private) functie fileLocation aangeroepen voor het omzetten van de class naam naar de locatie van het bestand. Omdat ik altijd een vaste opbouw gebruik voor de namen van mijn classes, komen deze functies altijd van pas. De class naam Database_User_GetUserData wordt dus door middel van deze class omgezet naar de locatie: Database/User/GetUserData.php. Maar voordat dit werkt moet nog wel de spl_autoload functie worden geregistreerd.<br />
Dit gebeurd bij mij in de index.php door middel van het volgende stukje code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Autoloader.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">spl_autoload_register</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Autoloader::autoload'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Dit alles maakt het dus mogelijk om bij het aanroepen van Database_User_GetUserData het bestand bij deze class in te laden.</p>
<p>Succes met het testen en mogelijk implementeren van deze functionaliteit!</p>
<p>Vragen en/of opmerkingen hoor ik graag.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevensack.nl/spl_autoload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gettext en PHP, wat kun je ermee en hoe werkt het?</title>
		<link>http://www.stevensack.nl/gettext-en-php/</link>
		<comments>http://www.stevensack.nl/gettext-en-php/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 21:49:00 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[vertalen]]></category>

		<guid isPermaLink="false">http://www.stevensack.nl/?p=17</guid>
		<description><![CDATA[Al lange tijd ben ik op zoek naar een goede, snelle en gemakkelijke manier voor het bouwen van een Multi-language PHP applicatie, of simpel gezegd, het vertalen van content in PHP. Tot ik terecht kwam op een pagina waar de functie gettext gebruikt werd. Na wat voorbeelden gezien te hebben ben ik enthousiast aan de slag gegaan [...]]]></description>
			<content:encoded><![CDATA[<p>Al lange tijd ben ik op zoek naar een goede, snelle en gemakkelijke manier voor het bouwen van een Multi-language PHP applicatie, of simpel gezegd, het vertalen van content in PHP. Tot ik terecht kwam op een pagina waar de functie gettext gebruikt werd. Na wat voorbeelden gezien te hebben ben ik enthousiast aan de slag gegaan met deze functie. Dit bleek tot mijn verbazing vrij simpel te zijn. De applicatie is gemakkelijk uit te breiden met meerdere talen door een kleine aanpassing in de code en een nieuwe taal (door middel van een vertaalbestand) toe te voegen. Deze ervaring wil ik graag met jullie delen door middel van deze post.</p>
<h3>Het PHP bestand</h3>
<p>Maak om te beginnen een nieuw php bestand aan met hierin de volgende code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'_LOCALE'</span><span style="color: #339933;">,</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'language'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'language'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">setlocale</span><span style="color: #009900;">&#40;</span>LC_ALL<span style="color: #339933;">,</span> _LOCALE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">bindtextdomain</span><span style="color: #009900;">&#40;</span>_LOCALE<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;./locale&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">textdomain</span><span style="color: #009900;">&#40;</span>_LOCALE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Eerst definieer ik de constante <code>_LOCALE</code>, voordat hier een waarde aan wordt gegeven, controleer ik eerst of de parameter &#8216;language&#8217; voorkomt in de url. Zo ja, wijs deze waarde dan toe aan de constante <code>_LOCALE</code>. Als dit niet het geval is blijft de constante leeg, dit betekend dat de standaard waarde, zoals deze in de php code voorkomt, wordt getoond in plaats van een vertaling hiervan.</p>
<p>Door middel van de functie <code>setlocale</code> wordt een taal ingesteld.</p>
<p>Stel met de functie <code>bindtextdomain</code> het pad in naar het vertaalbestand, als deze niet bereikt kan worden wordt de standaard waarde getoond zoals deze in de php code staat.</p>
<p>Geef in de functie <code>textdomain</code> dezelfde naam mee als bij de vorige functie.</p>
<p>Geef hieronder de regels mee welke zinnen of woorden vertaald moeten worden door middel van:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">echo</span> _<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Hallo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> _<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Dit is een test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> _<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Nog een test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> _<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'En nog een test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Of door middel van:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">gettext</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Hallo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">gettext</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Dit is een test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">gettext</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Nog een test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">gettext</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'En nog een test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Test deze pagina. Als de code geen fouten bevat kun je verder met het aanmaken van het vertaalbestand. Dit doen wij in deze tutorial door middel van het programma poedit.</p>
<h3>Het vertaalbestand</h3>
<p>Download dit programma (<a href="http://www.poedit.net/download.php">http://www.poedit.net/download.php</a>) en installeer het.<br />
Maak een nieuwe catalogus aan door in poedit te gaan naar bestand -> nieuwe catalogus&#8230; Geef, in het scherm wat nu verschijnt, de benodigde gegevens op. Ga hierna naar het volgende tabblad (paden) hier moet het pad naar de php bestanden worden opgegeven zodat deze gelezen kunnen worden, doe dit bij &#8216;basispad&#8217;. Dan gaan we naar het veld &#8216;paden&#8217;, geef hier alleen een punt (&#8216;.&#8217;) op. Druk hierna op &#8216;Ok&#8217; en sla het bestand op op de locatie waarmee rekening is gehouden met het opgeven van het &#8216;basispad&#8217;. Hierna worden de php bestanden gescand en verschijnen er een aantal woorden welke vertaald dienen te worden. Na de vertalingen opgegeven te hebben moet het bestand worden opgeslagen en kan de meertalige applicatie worden getest.</p>
<p>Succes met het testen en mogelijk implementeren van deze functionaliteit!</p>
<p>Vragen en/of opmerkingen hoor ik graag.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevensack.nl/gettext-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ontdekkingen in PHP en MySQL</title>
		<link>http://www.stevensack.nl/ontdekkingen-in-php-en-mysql/</link>
		<comments>http://www.stevensack.nl/ontdekkingen-in-php-en-mysql/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 09:30:26 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Geen categorie]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://www.stevensack.nl/?p=10</guid>
		<description><![CDATA[&#8220;Ontdekkingen in PHP en MySQL&#8221;, het zegt eigenlijk al genoeg. Hier zal ik bespreken wat ik zowel tegenkom als web developer bij Sky Concepts BV te Dordrecht.]]></description>
			<content:encoded><![CDATA[<p>&#8220;Ontdekkingen in PHP en MySQL&#8221;, het zegt eigenlijk al genoeg. Hier zal ik bespreken wat ik zowel tegenkom als web developer bij Sky Concepts BV te Dordrecht.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevensack.nl/ontdekkingen-in-php-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

