<?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>Mike Hart</title> <atom:link href="http://www.mikedhart.co.uk/feed/" rel="self" type="application/rss+xml" /><link>http://www.mikedhart.co.uk</link> <description>Web developer, PHP, Ruby, Java, Mootools, Flex</description> <lastBuildDate>Sun, 19 Feb 2012 17:49: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>Installing Memcached with WAMP</title><link>http://www.mikedhart.co.uk/2012/02/19/installing-memcached-with-wamp/</link> <comments>http://www.mikedhart.co.uk/2012/02/19/installing-memcached-with-wamp/#comments</comments> <pubDate>Sun, 19 Feb 2012 17:46:00 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=87</guid> <description><![CDATA[Many people seem to think that configuring your WAMP stack to use memcached is difficult to do. Personally, I think it is very easy, providing you have the right information at hand. So here it is: The first thing in installing memcached with wamp is to install the Memcached service. Go to this site and<a href="http://www.mikedhart.co.uk/2012/02/19/installing-memcached-with-wamp/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>Many people seem to think that configuring your WAMP stack to use memcached is difficult to do. Personally, I think it is very easy, providing you have the right information at hand.</p><p>So here it is:</p><ul><li>The first thing in installing memcached with wamp is to install the Memcached service. Go to <a href="http://code.jellycan.com/memcached/" target="_blank">this site</a> and download the Win 32 binary version.</li><li>Inside the download you will find a memcached.exe file. Extract this to C:\memcached</li><li>Now to install the service, open a command window and enter the following</li></ul><div>[codebox1]</div><div><ul><li>If all of this was successful, you should get a command line that says &#8220;The memcached server service was started successfully.&#8221;</li><li>The next thing to do is to add the PHP extention. Open your php.ini file and locate your extentions. At the bottom, add the following:</li></ul><div>[codebox2]</div><div><ul><li>Finally, we need to download that dll file. You can get it from <a href="http://downloads.php.net/pierre/" target="_blank">here</a>. This page has two download files. You only need one, but you may need to try both to get things working. When you have done all this, restart PHP and Apache and run a phpinfo(). If memcached does not feature on this page, download the other dll and repeat the process.</li><li>Assuming all of the above is ok, you should be able to run the following test script and have some information dumped out onto your screen:</li></ul><div>[codebox3]</div><div>I hope this helps!</div></div></div> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2012/02/19/installing-memcached-with-wamp/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Running Wamp with IIS</title><link>http://www.mikedhart.co.uk/2012/02/04/running-wamp-with-iis/</link> <comments>http://www.mikedhart.co.uk/2012/02/04/running-wamp-with-iis/#comments</comments> <pubDate>Sat, 04 Feb 2012 19:07:05 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[.NET]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Wamp]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=83</guid> <description><![CDATA[At the moment I am working on a .NET project and I thought I&#8217;d share this bit of useful information with you. I needed to configure wamp and IIS to work together seamlessly. The simple solution is to have Apache work from a different port. Naturally, I wanted IIS to be the one on the<a href="http://www.mikedhart.co.uk/2012/02/04/running-wamp-with-iis/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>At the moment I am working on a .NET project and I thought I&#8217;d share this bit of useful information with you. I needed to configure wamp and IIS to work together seamlessly.</p><p>The simple solution is to have Apache work from a different port. Naturally, I wanted IIS to be the one on the different port but the main problem with this is that IIS boots with the operating system. Apache does not, which means that IIS will always get to port 80 before wamp. Damn!</p><p>Anyway, here is my solution. In httpd.conf look for the following line:</p><p><p><pre class="Plum_Code_Box"><code class="">Listen 80</code>
									</pre></p></p><p>Change it to</p><p><p><pre class="Plum_Code_Box"><code class="">Listen 8080</code>
									</pre></p></p><p>Restart Apache and navigate to http://localhost:8080 &#8211; you will now see the Wamp start page.</p><p>The final thing we need to do is to configure our virtual hosts file. So open it up and change any reference to port 80 to port 8080. For example</p><p><p><pre class="Plum_Code_Box"><code class="">NameVirtualHost *:8080

&lt;VirtualHost *:8080&gt;  
    DocumentRoot &quot;c:/wamp/www/&quot;  
    ServerName localhost
&lt;/VirtualHost&gt;</code>
									</pre></p></p><p>Hope this helps! Let me know what you think.</p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2012/02/04/running-wamp-with-iis/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP Object Generator</title><link>http://www.mikedhart.co.uk/2011/10/27/php-object-generator/</link> <comments>http://www.mikedhart.co.uk/2011/10/27/php-object-generator/#comments</comments> <pubDate>Thu, 27 Oct 2011 00:59:54 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[Tools]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=75</guid> <description><![CDATA[As a developer of both Rails and PHP I am lucky enough to see the advantages one has over the other. One of the clear advantages Rails has over PHP is its RAD capabilities. This is largely thanks to ActiveRecord and the fantastic Rails command line tools. PHP however, does not have these command line<a href="http://www.mikedhart.co.uk/2011/10/27/php-object-generator/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>As a developer of both Rails and PHP I am lucky enough to see the advantages one has over the other. One of the clear advantages Rails has over PHP is its RAD capabilities. This is largely thanks to ActiveRecord and the fantastic Rails command line tools.</p><p>PHP however, does not have these command line tools and while there is an implementation of ActiveRecord for PHP, it is not native to PHP and in my opinion, some how just doesn&#8217;t feel right. Others may disagree but that is just my opinion. As a result of this, writing objects in PHP is a labour intensive and lets face it; boring task! Get this set that&#8230;. so much time wasted on repeating the same task.</p><p>Anyway, last weekend I set about writing an object generator that would some how mirror the abilities of the Rails command line. I ended up with <a title="My PHP object generator stored on GitHub" href="https://github.com/mikedhart/PHP-Object-Generator" target="_blank">this</a>.</p><p>All you have to do is install the object_generator folder into your site. Then, navigate to yoursite.local/object_generator, enter the name of what you want your object to be called and the table that it will represent and click submit. A file will then be created in the object_generator folder which you can copy and paste to your desired location. Each object created will extend my standard Object class which contains the following useful methods:</p><pre><p>
								<pre class="Plum_Code_Box"><code class="php">// Create a new object instance where $id represents the primary key of a table row
$user = new User( $id );</code>
									</pre></p><p><pre class="Plum_Code_Box"><code class="php">// Edit some attributes
$user-&gt;setName( $name );
$user-&gt;setAge( $age );</code>
									</pre></p><p><pre class="Plum_Code_Box"><code class="php">// Save the object
$user-&gt;save();</code>
									</pre></p><p><pre class="Plum_Code_Box"><code class="php">// Represent the object as an array
$user-&gt;toArray();</code>
									</pre></p><p><pre class="Plum_Code_Box"><code class="php">// Delete the object
$user-&gt;delete();</code>
									</pre></p></pre><p>Enjoy and if you have any questions, please feel free to ask! To download the source code, go to my <a title="My PHP object generator stored on GitHub" href="https://github.com/mikedhart/PHP-Object-Generator" target="_blank">GitHub repo</a></p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/10/27/php-object-generator/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Database Abstraction</title><link>http://www.mikedhart.co.uk/2011/10/05/database-abstraction/</link> <comments>http://www.mikedhart.co.uk/2011/10/05/database-abstraction/#comments</comments> <pubDate>Wed, 05 Oct 2011 21:15:35 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Database]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=72</guid> <description><![CDATA[When using MySQL in PHP I often use a simple database abstraction class that I wrote some time ago. This class sits as a layer between the application and database layers. I find that this really shortens the amount of code I have to write. The result is a more organic, succinct script. At this<a href="http://www.mikedhart.co.uk/2011/10/05/database-abstraction/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>When using MySQL in PHP I often use a simple database abstraction class that I wrote some time ago. This class sits as a layer between the application and database layers. I find that this really shortens the amount of code I have to write. The result is a more organic, succinct script. At this stage the class only has three main abstraction methods:</p><p><p><pre class="Plum_Code_Box"><code class="php">Database::fetchAll( $sql ); Database::fetchAssoc( $sql ); Database::query( $sql );</code>
									</pre></p></p><p>Example usage would be as follows:</p><p><p><pre class="Plum_Code_Box"><code class="php">// You'd probably wanna put this in a constructor somewhere or something like that....
Database::conect();

$sql = &quot;SELECT * FROM `users`&quot;;
$result = Database::fetchAssoc( $sql );

// Loop through the results and print each user's first name
foreach( $users as $user ){
    print $user['first_name'];
}

// Like connect, you might want to put this is a destructor...
Database::close();</code>
									</pre></p></p><p>You can download the class from my GitHub repo at <a href="https://github.com/mikedhart/Database-Abstraction">https://github.com/mikedhart/Database-Abstraction</a></p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/10/05/database-abstraction/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Spl Stack  Tutorial</title><link>http://www.mikedhart.co.uk/2011/09/17/spl-stack-tutorial/</link> <comments>http://www.mikedhart.co.uk/2011/09/17/spl-stack-tutorial/#comments</comments> <pubDate>Sat, 17 Sep 2011 16:26:12 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[Data Structures]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Spl]]></category> <category><![CDATA[Tutorial]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=66</guid> <description><![CDATA[This week I needed to run a series of procedures in a standard first in, last out methodology. I could, of course, have used an array for this, however, I decided to try out a stack. Spl data structures are often over looked in PHP. However, as PHP advances into a more object orientated environment,<a href="http://www.mikedhart.co.uk/2011/09/17/spl-stack-tutorial/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>This week I needed to run a series of procedures in a standard first in, last out methodology. I could, of course, have used an array for this, however, I decided to try out a stack.</p><p>Spl data structures are often over looked in PHP. However, as PHP advances into a more object orientated environment, I think it is important that we stand up and take note because structures allow us (as web developers) to use traditional programming data structures in our code.</p><p>Here&#8217;s how we would initiate a stack:</p><p><p><pre class="Plum_Code_Box"><code class="php">$stack = new SplStack();</code>
									</pre></p></p><p>A stack is essentially an array and has two primary functions:</p><p><p><pre class="Plum_Code_Box"><code class="php">$stack-&gt;push( $mixed );
$stack-&gt;pop();</code>
									</pre></p></p><p>Imagine a pile of books on a desk. You can put a book on top of the pile and take a book from the top of the pile and nothing else (without things getting messy). This is essentially how a stack works. The &#8220;push&#8221; method will put a metaphorical &#8221;book&#8221; on top of the pile and the &#8220;pop&#8221; method will remove whatever is at the top of the pile. Its that simple.</p><p>So, what else can we do with SplStack? The SplStack class has three implementations. Iterator, ArrayAccess and Countable. The Iterator implementation is very important as it allows us to iterate over each element stored in the stack. Por ejemplo:</p><p><p><pre class="Plum_Code_Box"><code class="php">$stack = new SplStack();

$stack-&gt;push( 1 );
$stack-&gt;push( 2 );
$stack-&gt;push( 3 );

foreach( $stack as $s ){
    echo $stack-&gt;pop();
}

// This would output: 321</code>
									</pre></p></p><p>ArrayAccess allows us to do exactly that. Here is an example:</p><p><p><pre class="Plum_Code_Box"><code class="php">$stack = new SplStack();

$stack[] = 1;
$stack[] = 2;
$stack[] = 3;</code>
									</pre></p></p><p>Finally, Countable simply allows us to count how many elements are stored in the stack:</p><p><p><pre class="Plum_Code_Box"><code class="php">// Using the above $stack instance
echo $stack-&gt;count();

// This would output an integer of 3</code>
									</pre></p></p><p>In the coming posts, I will write more about Spl data structures. Next time, I will focus on the class:  SplQueue.</p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/09/17/spl-stack-tutorial/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Forcing Mobile View of a Website</title><link>http://www.mikedhart.co.uk/2011/08/31/forcing-mobile-view-of-a-website/</link> <comments>http://www.mikedhart.co.uk/2011/08/31/forcing-mobile-view-of-a-website/#comments</comments> <pubDate>Wed, 31 Aug 2011 22:57:00 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[HTML5]]></category> <category><![CDATA[Mobile]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=50</guid> <description><![CDATA[I am currently working on a mobile version of a website and wanted to ensure that my content would fit the screen of which ever device visited the site. I know many developers who would settle for a setting the content width fixed to 320px (the width for an iPhone user). However, it is impossible<a href="http://www.mikedhart.co.uk/2011/08/31/forcing-mobile-view-of-a-website/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>I am currently working on a mobile version of a website and wanted to ensure that my content would fit the screen of which ever device visited the site.</p><p>I know many developers who would settle for a setting the content width fixed to 320px (the width for an iPhone user). However, it is impossible to ignore the rise of android and as there are so many different devices on the market to cater for.</p><p>This is how I managed to do it:</p><p><p><pre class="Plum_Code_Box"><code class="html">&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&gt;</code>
									</pre></p></p><p>This will ensure that the UI will always fit the screen. However, there is one slight issue with this. The user will still be able to zoom in on elements. To eradicate this change the above for the following:</p><p><p><pre class="Plum_Code_Box"><code class="html">&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,  user-scalable=no&quot;&gt;</code>
									</pre></p></p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/08/31/forcing-mobile-view-of-a-website/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Firefox 7 to use up to 50% less memory than previous versions</title><link>http://www.mikedhart.co.uk/2011/08/24/firefox-7-to-use-up-to-50-less-memory-than-previous-versions/</link> <comments>http://www.mikedhart.co.uk/2011/08/24/firefox-7-to-use-up-to-50-less-memory-than-previous-versions/#comments</comments> <pubDate>Wed, 24 Aug 2011 15:10:00 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[News]]></category> <category><![CDATA[news]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/2011/08/24/firefox-7-to-use-up-to-50-less-memory-than-previous-versions/</guid> <description><![CDATA[News that Firefox 7 will use up to 50% less memory than previous versions is quite a nice surprise. I have always found that Firefox browsers are much less stable than Chrome. Rather than writing a full post on this, I have decided that I can&#8217;t compete with this great post which sums everything up<a href="http://www.mikedhart.co.uk/2011/08/24/firefox-7-to-use-up-to-50-less-memory-than-previous-versions/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>News that Firefox 7 will use up to 50% less memory than previous versions is quite a nice surprise.</p><p>I have always found that Firefox browsers are much less stable than Chrome.</p><p>Rather than writing a full post on this, I have decided that I can&#8217;t compete with <a href="http://blog.mozilla.com/nnethercote/2011/08/09/firefox-7-is-lean-and-fast-2/">this great post</a> which sums everything up in every possible detail. Happy reading!</p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/08/24/firefox-7-to-use-up-to-50-less-memory-than-previous-versions/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Engine Yard Acquire Orchestra</title><link>http://www.mikedhart.co.uk/2011/08/23/engine-yard-acquire-orchestra/</link> <comments>http://www.mikedhart.co.uk/2011/08/23/engine-yard-acquire-orchestra/#comments</comments> <pubDate>Tue, 23 Aug 2011 16:29:00 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[News]]></category> <category><![CDATA[news]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Ruby]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/2011/08/23/engine-yard-acquire-orchestra/</guid> <description><![CDATA[Engine yard&#8217;s acquisition of orchestra spells great things for the future of the way we develop web applications. Engine yard offers a revolutionary way to develop Rails apps in a cloud based environment and the news that we will soon be able to develop PHP apps in this environment is fantastic. For anyone who has<a href="http://www.mikedhart.co.uk/2011/08/23/engine-yard-acquire-orchestra/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>Engine yard&#8217;s acquisition of orchestra spells great things for the future of the way we develop web applications.</p><p>Engine yard offers a revolutionary way to develop Rails apps in a cloud based environment and the news that we will soon be able to develop PHP apps in this environment is fantastic.</p><p>For anyone who has not yet tried Engine Yard, I would seriously recommend it. Every new user gets 500 free hours of development time so there is no excuse not to try it! Here&#8217;s the <a href="http://www.engineyard.com">link.</a></p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/08/23/engine-yard-acquire-orchestra/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Flex for free!</title><link>http://www.mikedhart.co.uk/2011/05/11/flex-for-free/</link> <comments>http://www.mikedhart.co.uk/2011/05/11/flex-for-free/#comments</comments> <pubDate>Wed, 11 May 2011 21:28:22 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[Flex]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=40</guid> <description><![CDATA[Just a quick note&#8230;. For all you Flex developers out there who don&#8217;t want to pay big bucks, I found a great post today which outlines the best way to develop Flex for free! Here&#8217;s the link]]></description> <content:encoded><![CDATA[<p>Just a quick note&#8230;. For all you Flex developers out there who don&#8217;t want to pay big bucks, I found a great post today which outlines the best way to develop Flex for free! <a href="http://www.steamed-design.com/post/4861281793/flashdevelop/" target="_blank">Here&#8217;s the link</a></p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/05/11/flex-for-free/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Zend Form Validation</title><link>http://www.mikedhart.co.uk/2011/05/01/zend-form-validation/</link> <comments>http://www.mikedhart.co.uk/2011/05/01/zend-form-validation/#comments</comments> <pubDate>Sun, 01 May 2011 20:52:13 +0000</pubDate> <dc:creator>mikedhart</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[Zend]]></category> <category><![CDATA[Tutorial]]></category><guid isPermaLink="false">http://www.mikedhart.co.uk/?p=37</guid> <description><![CDATA[Today, I&#8217;d like to talk about validating form data with Zend.  Traditionally, validating form data in PHP is quite a cumbersome task, especially when it comes to validating email addresses. We might detect characters such as (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) and then either send the data back to the user to re enter data or use str_replace() to<a href="http://www.mikedhart.co.uk/2011/05/01/zend-form-validation/"> <br /><br /> (Read More...)</a>]]></description> <content:encoded><![CDATA[<p>Today, I&#8217;d like to talk about validating form data with Zend.  Traditionally, validating form data in PHP is quite a cumbersome task, especially when it comes to validating email addresses. We might detect characters such as (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) and then either send the data back to the user to re enter data or use <code>str_replace()</code> to get rid of the unwanted characters.  The beauty of Zend however, means that we can deal with this task with ease. See below:</p><p><p><pre class="Plum_Code_Box"><code class="php">    /**
     * Validate the new user data
     * 
     * @param array $data
     */
    protected function validate(array $data)
    {
        $emailValidator = new Zend_Validate_EmailAddress();

        if($emailValidator-&gt;isValid($data['username']) &amp;&amp; $data['password'] == $data['verify_password']){
            return true;
        } else{
            throw new Exception(&quot;Please ensure that your passwords match and that you have used a valid email address&quot;);
        }
    }</code>
									</pre></p></p><p>This is a simple custom function which I have written to validate a &#8220;register user&#8221; form. Firstly, we pass in the post data to the function this can be done as follows:</p><p><p><pre class="Plum_Code_Box"><code class="php">// The Zend way
$data = $this-&gt;_request-&gt;getPost()

// The traditional way
$data = $_POST;</code>
									</pre></p></p><p>We then create a new instance of the Zend email validator</p><p><p><pre class="Plum_Code_Box"><code class="php">$emailValidator = new Zend_Validate_EmailAddress();</code>
									</pre></p></p><p>We then run the email address through the validator using a simple <code>if</code> statement and the <code>isValid()</code> method of the validator object.</p><p><p><pre class="Plum_Code_Box"><code class="php">if($emailValidator-&gt;isValid($data['username']) &amp;&amp; $data['password'] == $data['verify_password']){
            return true;
        } else{
            throw new Exception(&quot;Please ensure that your passwords match and that you have used a valid email address&quot;);
        }</code>
									</pre></p></p><p>If all is well, we return true if there is a fault, we throw an Exception. Simple as that.</p><p>There are tons of validators for Zend. Some of them are:</p><ul><li>Zend_Validate_Alpha</li><li>Zend_Validate_Alnum</li><li>Zend_Validate_Db_RecordExists</li><li>Zend_Validate_Iban</li></ul><p>For a full list, check out the documentation over at <a href="http://framework.zend.com/manual/en/zend.validate.set.html">http://framework.zend.com/manual/en/zend.validate.set.html</a></p> ]]></content:encoded> <wfw:commentRss>http://www.mikedhart.co.uk/2011/05/01/zend-form-validation/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
