<?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>vdGeijn.com &#187; Zend Framework</title>
	<atom:link href="http://www.vdgeijn.com/category/websites-bouwen/php/zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vdgeijn.com</link>
	<description>You must be bored to end up here...</description>
	<lastBuildDate>Tue, 09 Aug 2011 09:30:42 +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>Update alle MySQL collate en character sets met 1 SQL commando</title>
		<link>http://www.vdgeijn.com/81/websites-bouwen/php/update-alle-mysql-collate-en-character-sets-met-1-sql-commando/</link>
		<comments>http://www.vdgeijn.com/81/websites-bouwen/php/update-alle-mysql-collate-en-character-sets-met-1-sql-commando/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 09:28:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=81</guid>
		<description><![CDATA[Aan het begin bij het opzetten van wat nu een grote database is geworden, heb ik gekozen voor de standaard latin codering. Door allerlei veranderingen in de PHP code en de overstap naar Zend Framework moest de collcation overgezet worden naar utf8-unicode-ci. Met zo&#8217;n 80 tabellen met ieder gemiddeld zo&#8217;n 30 velden is dat een [...]]]></description>
			<content:encoded><![CDATA[<p>Aan het begin bij het opzetten van wat nu een grote database is geworden, heb ik gekozen voor de standaard latin codering. Door allerlei veranderingen in de PHP code en de overstap naar Zend Framework moest de collcation overgezet worden naar utf8-unicode-ci. Met zo&#8217;n 80 tabellen met ieder gemiddeld zo&#8217;n 30 velden is dat een hoop werk om handmatig te doen.</p>
<p>Dus google erbij gehaald en uiteindelijk het in enkele minuten voor elkaar gekregen met de volgende SQL:</p>
<p><code>select concat( 'alter table `', a.table_name, '` convert to character set utf8 collate utf8_unicode_ci;' )<br />
from information_schema.tables a<br />
where a.table_schema = "schema"</code></p>
<p>Vergeet niet om achter table_schema de juiste database in te vullen in plaats van schema wat er nu staat. De uitvoer van de bovenstaande SQL kan je weer kopieren en plakken via de SQL tab van je database in phpMyAdmin.</p>
<p>Om het ook meteen in Zend Framework goed te krijgen moest ik ook nog bij het aanmaken van het Zend_DB object een driver optie meegeven:</p>
<p><code>'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;'</code></p>
<p>Dit plaats je dus in de zelfde array als waar je ook de login, wachtwoord en database opgeeft voor de te openen database.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/81/websites-bouwen/php/update-alle-mysql-collate-en-character-sets-met-1-sql-commando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework class voor Twinfield SOAP API</title>
		<link>http://www.vdgeijn.com/66/websites-bouwen/php/zend-framework-class-voor-twinfield-soap-api/</link>
		<comments>http://www.vdgeijn.com/66/websites-bouwen/php/zend-framework-class-voor-twinfield-soap-api/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 06:39:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twinfield]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=66</guid>
		<description><![CDATA[Tijdens de ontwikkeling van het nieuwe controle paneel moest er onder andere een Zend Framework class geschreven worden voor verbinding tussen ons eigen systeem en Twinfield. Hier heeft Twinfield een heel mooie API beschikbaar via SOAP. Hieronder de basis van de My_Soap_Client_Twinfield class. Zodra de class verder af is, zal ik nog een update plaatsen. [...]]]></description>
			<content:encoded><![CDATA[<p>Tijdens de ontwikkeling van het nieuwe controle paneel moest er onder andere een Zend Framework class geschreven worden voor verbinding tussen ons eigen systeem en Twinfield. Hier heeft Twinfield een heel mooie API beschikbaar via SOAP. Hieronder de basis van de My_Soap_Client_Twinfield class.</p>
<p>Zodra de class verder af is, zal ik nog een update plaatsen.</p>
<p><code>class My_Soap_Client_Twinfield extends Zend_Soap_Client<br />
{<br />
protected $cache = NULL;</p>
<p>protected $user = "********";<br />
protected $password = "********";<br />
protected $organisation = "********";<br />
protected $administration = "********";</p>
<p>protected $header = NULL;</p>
<p>protected $data = false;</p>
<p>private function getSession() {<br />
$ret = false;</p>
<p>$params = array( 'user' =&gt; $this-&gt;user,<br />
'password' =&gt; $this-&gt;password,<br />
'organisation' =&gt; $this-&gt;organisation<br />
);</p>
<p>$cache = Zend_Registry::get ( 'Cache' );</p>
<p>if( $this-&gt;data === false &amp;&amp; ( $this-&gt;data = $cache-&gt;load( md5("Twinfield_Session_And_Url") ) ) === false ) {<br />
$client = new Zend_Soap_Client( "https://login.twinfield.com/webservices/session.asmx?wsdl" );</p>
<p>$client-&gt;logon( $params );</p>
<p>$doc = new domDocument();<br />
$doc-&gt;loadXML( $client-&gt;getLastResponse() );</p>
<p>$this-&gt;data['SessionID'] = $doc-&gt;getElementsByTagName('SessionID')-&gt;item(0)-&gt;textContent;<br />
$cluster = $doc-&gt;getElementsByTagName('cluster')-&gt;item(0)-&gt;textContent;<br />
$this-&gt;data['cluster'] =  $cluster . '/webservices/processxml.asmx?wsdl';</p>
<p>$client = new Zend_Soap_Client( $cluster . '/webservices/session.asmx?wsdl' );<br />
$header = new SoapHeader( 'http://www.twinfield.com/', 'Header', array( 'SessionID' =&gt; $this-&gt;data['SessionID'] ) );<br />
$client-&gt;addSoapInputHeader( $header );<br />
$client-&gt;SelectCompany( array( 'company' =&gt; $this-&gt;administration ) );</p>
<p>$doc = new domDocument();<br />
$doc-&gt;loadXML( $client-&gt;getLastResponse() );<br />
$result = $doc-&gt;getElementsByTagName('SelectCompanyResult')-&gt;item(0)-&gt;textContent;</p>
<p># Alleen het resultaat bewaren als alles goed gegaan is<br />
if( strcmp( $result, "Ok" ) ) {<br />
$cache-&gt;save( $this-&gt;data );<br />
$ret = true;<br />
}<br />
}</p>
<p>return $ret;<br />
}</p>
<p>public function __construct( ) {<br />
if( $this-&gt;getSession() ) {<br />
parent::__construct( $this-&gt;data['cluster'] );</p>
<p>$this-&gt;header = new SoapHeader( 'http://www.twinfield.com/', 'Header', array( 'SessionID' =&gt; $this-&gt;data['SessionID'] ) );</p>
<p># Add permanent session header<br />
$this-&gt;addSoapInputHeader( $this-&gt;header, true );<br />
} else {<br />
throw new Exception( "Error creating Twinfield session" );<br />
}<br />
}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/66/websites-bouwen/php/zend-framework-class-voor-twinfield-soap-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Form met read-only veld</title>
		<link>http://www.vdgeijn.com/27/websites-bouwen/php/zend-framework/form-met-read-only-veld/</link>
		<comments>http://www.vdgeijn.com/27/websites-bouwen/php/zend-framework/form-met-read-only-veld/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 07:58:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=27</guid>
		<description><![CDATA[Het was niet duidelijk hoe er een veld getoond kan worden binnen een form, dat niet gewijzigd kan worden. Na wat zoekwerk kwam de volgende constructie naar boven: $form-&#62;addElement(&#8216;text&#8217;, &#8216;ip&#8217;, array(&#8216;label&#8217; =&#62; &#8216;IP adres&#8217;, &#8216;value&#8217; =&#62; $_SERVER['REMOTE_ADDR'] )); $form-&#62;getElement(&#8216;ip&#8217;)-&#62;helper = &#8216;formNote&#8217;;]]></description>
			<content:encoded><![CDATA[<p>Het was niet duidelijk hoe er een veld getoond kan worden binnen een form, dat niet gewijzigd kan worden. Na wat zoekwerk kwam de volgende constructie naar boven:</p>
<blockquote><p>$form-&gt;addElement(&#8216;text&#8217;, &#8216;ip&#8217;,<br />
                  array(&#8216;label&#8217; =&gt; &#8216;IP adres&#8217;, &#8216;value&#8217; =&gt; $_SERVER['REMOTE_ADDR'] ));<br />
$form-&gt;getElement(&#8216;ip&#8217;)-&gt;helper = &#8216;formNote&#8217;;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/27/websites-bouwen/php/zend-framework/form-met-read-only-veld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaining routes with wildcard (*) does not work</title>
		<link>http://www.vdgeijn.com/19/websites-bouwen/php/zend-framework/chaining-routes-with-wildcard-does-not-work/</link>
		<comments>http://www.vdgeijn.com/19/websites-bouwen/php/zend-framework/chaining-routes-with-wildcard-does-not-work/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 21:25:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=19</guid>
		<description><![CDATA[Enkele maanden geleden al tegen een vervelend probleem gelopen in Zend Framework. Het heeft mij een dag gekost om er achter te komen dat Chaining routes met een wildcard niet goed werken. Al vanaf versie 1.8.x zit er een bug in dat de variabele $matchedPath niet goed geupdate wordt in Zend_Controller_Router_Route. Op deze variabele wordt [...]]]></description>
			<content:encoded><![CDATA[<p>Enkele maanden geleden al tegen een vervelend probleem gelopen in Zend Framework. Het heeft mij een dag gekost om er achter te komen dat Chaining routes met een wildcard niet goed werken. Al vanaf versie 1.8.x zit er een bug in dat de variabele $matchedPath niet goed geupdate wordt in Zend_Controller_Router_Route. Op deze variabele wordt later in de code weer gecontroleerd of het hele pad gematched is.</p>
<p>Zoals ook gepost in <a href="http://framework.zend.com/issues/browse/ZF-6654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel">de issue tracker van Zend Framework</a>, heb ik er een oplossing voor die ik iedere keer doorvoer als ik een upgrade uitvoer. Als ik het goed zie in de comments zal het probleem in de volgende release gefixt zijn. Ik hoop het.</p>
<p>Update: Hoewel het lang heeft geduurd, is dit probleem eind 2009 gefixt in versie 1.10.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/19/websites-bouwen/php/zend-framework/chaining-routes-with-wildcard-does-not-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

