<?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>greg&#039;s weblog &#187; php</title>
	<atom:link href="http://gregk.me/category/tech/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://gregk.me</link>
	<description>the more I learn, the less I know</description>
	<lastBuildDate>Wed, 16 May 2012 21:28:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Should statics be removed from PHP?</title>
		<link>http://gregk.me/2012/should-static-methods-be-removed-from-php/</link>
		<comments>http://gregk.me/2012/should-static-methods-be-removed-from-php/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 00:23:39 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=1478</guid>
		<description><![CDATA[This might sound heavy handed and radical but it&#8217;s widely accepted, particularly among the testing community that statics are evil. Specifically I&#8217;m referring to static properties and methods, with exception to self for late static binding and parent used in inheritance. At first glance, statics are a convenience but as your code base grows, and [...]]]></description>
		<wfw:commentRss>http://gregk.me/2012/should-static-methods-be-removed-from-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP UK Conference 2012</title>
		<link>http://gregk.me/2012/php-uk-conference-2012/</link>
		<comments>http://gregk.me/2012/php-uk-conference-2012/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 22:58:27 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[conference]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpuk2012 conference london php]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=1472</guid>
		<description><![CDATA[This was the third consecutive year I&#8217;ve attended the PHP UK conference. I bought a ticket for Friday only (this is the first year PHP UK has spanned two days). While I think the event is better organised every year, the quality of the talks for 2012, overall, was not the same standard as last [...]]]></description>
		<wfw:commentRss>http://gregk.me/2012/php-uk-conference-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPUnit command line code coverage summary</title>
		<link>http://gregk.me/2011/phpunit-command-line-code-coverage-summary/</link>
		<comments>http://gregk.me/2011/phpunit-command-line-code-coverage-summary/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 20:18:04 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[bashscript]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[code coverage]]></category>
		<category><![CDATA[phpunit]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=1130</guid>
		<description><![CDATA[When writing unit tests, it&#8217;s often useful to know the code coverage you&#8217;ve achieved to see what proportion of your code you&#8217;re exercising. Typically you have to commit your code to version control, so your CI server can pull in your updates and produce coverage reports. This means you sometimes commit incomplete tests, where you [...]]]></description>
		<wfw:commentRss>http://gregk.me/2011/phpunit-command-line-code-coverage-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPUnit with() method argument matchers</title>
		<link>http://gregk.me/2011/phpunit-with-method-argument-matchers/</link>
		<comments>http://gregk.me/2011/phpunit-with-method-argument-matchers/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 22:08:05 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[arguments]]></category>
		<category><![CDATA[assertions]]></category>
		<category><![CDATA[mocking]]></category>
		<category><![CDATA[phpunit]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=1210</guid>
		<description><![CDATA[I occasionally need the list of method parameter matchers when setting assertions via mocks using with(). A completely useless example: $foo->expects($this->once()) ->method('setter') ->with($this->isType('string')); I can see a few documented in the examples but the most conclusive list I&#8217;ve come across is from slide 11 of these Advanced PHPUnit Testing slides. So I am posting them [...]]]></description>
		<wfw:commentRss>http://gregk.me/2011/phpunit-with-method-argument-matchers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP implementation of bank card Luhn algorithm</title>
		<link>http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/</link>
		<comments>http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 14:23:26 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[bank card]]></category>
		<category><![CDATA[credit card]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=1125</guid>
		<description><![CDATA[I originally added this to Wikipedia&#8217;s Luhn algorithm page but one of their editors deemed there to be too many language implementations, and so they scrubbed it. I&#8217;m posting it here for other PHP programmers, this might save you a few minutes work. function validLuhn($number) { for ($sum = 0, $i = strlen($number) - 1; [...]]]></description>
		<wfw:commentRss>http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So that&#8217;s why I don&#8217;t compile from source &#8230;</title>
		<link>http://gregk.me/2011/so-thats-why-i-dont-compile-from-source/</link>
		<comments>http://gregk.me/2011/so-thats-why-i-dont-compile-from-source/#comments</comments>
		<pubDate>Sat, 21 May 2011 12:06:16 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[dependencies]]></category>
		<category><![CDATA[php5.3]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=1015</guid>
		<description><![CDATA[I needed to compile the latest PHP5 from source so I could enable FPM support. The following packages needed installing to successfully complete compilation. My configure line was as follows: './configure' '--prefix=/etc/php' '--with-config-file-path=/etc/php' '--with-curl' '--with-pear' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-xpm-dir' '--with-freetype-dir' '--with-t1lib' '--with-mcrypt' '--with-mhash' '--with-mysql' '--with-mysqli' '--with-pdo-mysql' '--with-openssl' '--with-xmlrpc' '--with-xsl' '--with-bz2' '--with-gettext' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--enable-fpm' [...]]]></description>
		<wfw:commentRss>http://gregk.me/2011/so-thats-why-i-dont-compile-from-source/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Installing PDO sqlite3 support on Ubuntu</title>
		<link>http://gregk.me/2011/installing-pdo-sqlite3-support-on-ubuntu/</link>
		<comments>http://gregk.me/2011/installing-pdo-sqlite3-support-on-ubuntu/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 06:41:59 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pdo]]></category>
		<category><![CDATA[pecl]]></category>
		<category><![CDATA[sqlite3]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=983</guid>
		<description><![CDATA[I was surprised to find PDO sqlite support wasn&#8217;t included by default with PHP 5 on my Ubuntu (10.04) virtual machine. You can check which drivers are available with this small snippet of code (assuming you run this from the command line): foreach (PDO::getAvailableDrivers() as $driver) { echo $driver . PHP_EOL; } Update: Long story [...]]]></description>
		<wfw:commentRss>http://gregk.me/2011/installing-pdo-sqlite3-support-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>PHP UK Conference 2011</title>
		<link>http://gregk.me/2011/php-uk-conference-2011/</link>
		<comments>http://gregk.me/2011/php-uk-conference-2011/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 22:28:54 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[conference]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[london]]></category>
		<category><![CDATA[phpuk2011]]></category>

		<guid isPermaLink="false">http://gregk.me/?p=880</guid>
		<description><![CDATA[I recently attended PHP UK 2011, this was the second PHP UK conference I&#8217;ve attended. Key point from last year: this year was much better organised! Everything ran on time, last year we started late and talks over ran. Congrats to the PHP UK team for much improved organisation. Several talks have been posted on [...]]]></description>
		<wfw:commentRss>http://gregk.me/2011/php-uk-conference-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The biggest bottleneck: developer time, not double quotes</title>
		<link>http://gregk.me/2006/the-biggest-bottleneck-developer-time-not-double-quotes/</link>
		<comments>http://gregk.me/2006/the-biggest-bottleneck-developer-time-not-double-quotes/#comments</comments>
		<pubDate>Sat, 02 Dec 2006 22:01:40 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[code reuse]]></category>
		<category><![CDATA[frameworks]]></category>

		<guid isPermaLink="false">http://gregk.me/2006/12/02/the-biggest-bottleneck-developer-time-not-double-quotes/</guid>
		<description><![CDATA[It&#8217;s hard to drag a community the size of PHP&#8217;s towards such things as standards and using frameworks. From my experience many PHP developers still struggle/refuse to adopt others standards. When I started PHP, PEAR didn&#8217;t exist, and even when it did (and probably even today) much of community is used to &#8220;rolling their own&#8221; [...]]]></description>
		<wfw:commentRss>http://gregk.me/2006/the-biggest-bottleneck-developer-time-not-double-quotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP exe compiler &amp; GUI apps</title>
		<link>http://gregk.me/2006/php-exe-compiler-gui-apps/</link>
		<comments>http://gregk.me/2006/php-exe-compiler-gui-apps/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 20:08:53 +0000</pubDate>
		<dc:creator>Greg K</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[gui]]></category>

		<guid isPermaLink="false">http://gregk.me/2006/07/11/php-exe-compiler-gui-apps/</guid>
		<description><![CDATA[I just read about Bambalam PHP EXE Compiler/Embedder on phpdeveloper &#8211; very cool. Then I spotted WinBinder, genius! (I wonder how well PHP performs for desktop GUI apps).]]></description>
		<wfw:commentRss>http://gregk.me/2006/php-exe-compiler-gui-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

