<?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>King Foo &#187; PHP</title>
	<atom:link href="http://www.king-foo.be/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.king-foo.be</link>
	<description>we build, deploy and maintain web applications</description>
	<lastBuildDate>Tue, 24 Jan 2012 22:43:07 +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>PHP 5.4 &#8211; What&#8217;s new?</title>
		<link>http://www.king-foo.be/2012/01/php-5-4-whats-new/</link>
		<comments>http://www.king-foo.be/2012/01/php-5-4-whats-new/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 20:07:25 +0000</pubDate>
		<dc:creator>wimm</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[5.4]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=782</guid>
		<description><![CDATA[PHP 5.4 will be stable soon. In this post I&#8217;ll try to give you an overview and examples of the new PHP 5.4 features. If you want to try out PHP 5.4 (which is currently in RC6), it has to be installed first. I suggest that you try this out on a virtual machine so you don&#8217;t break your current PHP version. Installing PHP 5.4 on Ubuntu Improved Session extension storing upload progress feedback in session data In the past it was possible to get the progress of an uploaded file through external packages like for instance uploadprogress but from now on it&#8217;s possible to get the progress of uploaded files through session data. Configuration of this feature is done in php.ini with the following parameters: As example, I created a page with 2 frames. One for uploading the files and one wich shows the session data. In the real world, you probably will track the progress with the help of some Ajax. If you try this example local, you better test it with a very big file. Otherwise uploading will be done before the respone is received. (Otherwise you have to set session.upload_progress.cleanup to Off to keep the session) index.php: form.php: response.php: Example output could be something like this where 3 files are uploaded and the 4th is being processed: Expose session status Till now, it was not possible to know if a session was started or not. From now on, there is a new function to fetch the ...]]></description>
		<wfw:commentRss>http://www.king-foo.be/2012/01/php-5-4-whats-new/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>My php&#124;architect article on real-time data &#8211; get it now!</title>
		<link>http://www.king-foo.be/2011/12/my-phparchitect-article-on-real-time-data-get-it-now/</link>
		<comments>http://www.king-foo.be/2011/12/my-phparchitect-article-on-real-time-data-get-it-now/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 20:29:56 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
				<category><![CDATA[Comet]]></category>
		<category><![CDATA[King Foo]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Realtime]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=775</guid>
		<description><![CDATA[As a followup to my previous article on Comet, php&#124;architect just published my second article on real-time data: “Real-Time Data, New School Style”. Get it from the source.]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/12/my-phparchitect-article-on-real-time-data-get-it-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Complex Type with Zend_Soap</title>
		<link>http://www.king-foo.be/2011/09/using-complex-types-with-zend_soap/</link>
		<comments>http://www.king-foo.be/2011/09/using-complex-types-with-zend_soap/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 07:50:37 +0000</pubDate>
		<dc:creator>ronny</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web services]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=546</guid>
		<description><![CDATA[To be able to use complex types with Soap requests, they need to be fully defined in the WSDL file. Zend_Soap can automate this process, if you know how to define those complex types. Let us start without it Zend_Soap&#8217;s magic and compare it with a fully discovered complex request type afterwards. First, let&#8217;s define your classes. Let&#8217;s assume we have a book collection, and each book can have multiple tags. Our webservice class looks like this: By using Zend_Soap and the automagically created WSDL file, the code launching our SOAP server could look like this: The WSDL (just browse to http:/localhost/soap.php?WSDL=1) does not hold any information about the Book or Tags objects: The inserted book can be of anyType. This is not really useful as you can imagine. Now, let&#8217;s spice things up. The real magic in Zend_Soap is in the autodiscovery mechanism producing the WSDL file. Zend_Soap_AutoDiscover won&#8217;t know how to use all those variables, unless you define the types with correct docblock information, like this: The type for $tags is Tag[], Tag comes from the defined class, and [] makes it an array. Note the /**, it&#8217;s necessary to use 2 asterisks for the Reflection class to identify the docblock. Now you can use the Book type in your Webservice functions. The insertBook method is annotated like this: Zend_Soap_Autodiscover has several strategies, you can read the Zend Framework Manual for more information on complex type strategies. We will use Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex, so Autodiscover can find the Tag array ...]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/09/using-complex-types-with-zend_soap/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introduction to Sass</title>
		<link>http://www.king-foo.be/2011/08/introduction-to-sass/</link>
		<comments>http://www.king-foo.be/2011/08/introduction-to-sass/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 13:57:39 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=622</guid>
		<description><![CDATA[Sass, or Syntactically Awesome Style Sheets, promises us to rid us from annoyances over CSS. And it delivers! Over the passed few months I have noticed an increasing interest for Sass and other CSS alternatives, especially in the developer community. Ofcourse this peaked my interest too, and I started playing around with my first Sass stylesheets. How could I ever go without? What is Sass? In a nutshell, Sass is a superset of the CSS3 syntax (during the course of this article we are going to ignore the older, indented syntax), that infuses your stylesheets with lots of goodies like variables, functions and mixins. Sass is written in Ruby (and requires Ruby to run). Installation Sass is run from the command line, and installation is easy: Mac OS X / Windows Mac OS X comes installed with Ruby by default. On Windows platforms you&#8217;ll need to install Ruby manually first. Ubuntu First steps Getting started with Sass is super easy! To convert an existing stylesheet to a SCSS (Sassy CSS), just copy yourstylesheet.css to yourstylesheet.scss. Because any valid CSS3 syntax is also valid SCSS, you just created your first Sass stylesheet! Now you can start enhancing your stylesheets with some Sassy magic. How does it work? Sass will compile your SCSS files to valid CSS files. The resulting CSS files are what you include in your HTML. You normally would compile the SCSS files on your local machine, only deploying the generated CSS files to your production server. You can ...]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/08/introduction-to-sass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony2 launch party</title>
		<link>http://www.king-foo.be/2011/07/symfony2-launch-party/</link>
		<comments>http://www.king-foo.be/2011/07/symfony2-launch-party/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 05:10:56 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=574</guid>
		<description><![CDATA[On Thursday (28th july) Symfony2 will be officially released as stable. To celebrate this, King Foo will be organizing a launch party in Leuven. If you are a PHP developer and care (or just curious) about Symfony, come and join us at Bar Esperança. It&#8217;s on the second floor, right above Cafe Alegria, Oude Markt 31, 3000 Leuven. Starting at 19:00, you can join us for free drinks and a chat in the lively city of Leuven!]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/07/symfony2-launch-party/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Catch Firebird events with Node.js</title>
		<link>http://www.king-foo.be/2011/07/catch-firebird-events-with-node-js/</link>
		<comments>http://www.king-foo.be/2011/07/catch-firebird-events-with-node-js/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 09:15:15 +0000</pubDate>
		<dc:creator>wimm</dc:creator>
				<category><![CDATA[Firebird]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scaling]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=474</guid>
		<description><![CDATA[In this post, I&#8217;ll try to explain how you can use Node.js to catch events on Firebird. Although Microsoft announced last week to contribute resources towards porting Node to Windows, it currently does not run out of the box on Windows. You can try to run it with Cygwin. In this example I use Ubuntu as the server where Node runs on. Firebird on the other hand can be installed on Linux, Windows and MacOSX. I first start with installing Node. Ubuntu does have a package nodejs in his repository but when using this, nmp will not work because it needs the command node, which is not included in the Ubuntu package. So I recommend installing node from source: When installing Node, some errors can arise error: solution: error: solution: Node should be installed correctly now. Type in &#8216;node -v&#8217; to check if the installation succeeded and node is in your path Now the installation of Firebird. In this example, it doesn&#8217;t matter if you install the super, classic or superclassic version Set the password for SYSDBA: Create a new database for our newly installed Firebird. If you would use a graphical interface for interacting with Firebird, I would recommend FlameRobin Create a new table: We want to update the datefield automatically on an insert. This can be done with a trigger: A nice feature of Firebird is the support of events. This means that you can fire an event when some action in the database occurs. To interact with ...]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/07/catch-firebird-events-with-node-js/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A first attempt at the PHP Excel extension</title>
		<link>http://www.king-foo.be/2011/05/a-first-attempt-at-the-php-excel-extension/</link>
		<comments>http://www.king-foo.be/2011/05/a-first-attempt-at-the-php-excel-extension/#comments</comments>
		<pubDate>Tue, 10 May 2011 21:00:36 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=118</guid>
		<description><![CDATA[We needed a somewhat more advanced Excel file generation toolset for one of our customers and decided to take Ilia Alshanetsky&#8217;s Excel extension for PHP for a spin. The extension exposes LibXL&#8216;s power. LibXL allows for generating and editing XLS files, and extracting data from them. There are some code samples available on their site and a list of documented functions and classes. The php-excel extension exposes nearly all of the C API. A sample document on libxl&#8217;s site shows off some of the features (such as support for formulas, formatting of cells and content, cell merges, grouping of rows, support for different data formats for the cell content, &#8230;). Install First, we&#8217;re going to download and install all the necessary stuff for compiling and testing the extension. You can download a recent version of LibXL from here. These are the steps you can follow when on Debian or Ubuntu: When compiling we need to symlink this (inside the libxl-3.1.0 dir): You can clone the code from Github or download a recent snapshot: http://github.com/downloads/iliaal/php_excel/php-excel-0.9.0.tar.bz2. There is a more recent file (php-excel-0.9.1.tar.bz2), but we couldn&#8217;t compile the extension using that snapshot&#8230; Now first check if you have the necessary build tools installed, if not (again, for Debian or Ubuntu): At this point, we are ready to compile the extension. Just follow these steps (inside /src/excel-0.9.0/) for 32 bit systems: For 64 bit systems: As an alternative, you could clone the Github repo and compile using that code (make sure you have ...]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/05/a-first-attempt-at-the-php-excel-extension/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Jenkins webinar for Zend</title>
		<link>http://www.king-foo.be/2011/05/jenkins-webinar-for-zend/</link>
		<comments>http://www.king-foo.be/2011/05/jenkins-webinar-for-zend/#comments</comments>
		<pubDate>Tue, 03 May 2011 19:27:38 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
				<category><![CDATA[Continuous integration]]></category>
		<category><![CDATA[King Foo]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=165</guid>
		<description><![CDATA[The recording of a webinar I gave about &#8220;Using Jenkins/Hudson for Continuous Builds&#8221; is available online at Zend&#8217;s webinar page. Jenkins, the successor of Hudson, can be used to continuously build and deploy your code and database upgrades. Continuous builds can be used to have snapshots of a work in progress for your customer to review for example. It can be used for applying code quality checks of course and even for ad-hoc deployment. In the webinar we take a closer look at how Jenkins can be installed and configured to work with tools like Phing, Zend Tool, Symfony tasks and shell scripts, using one or more example projects. The webinar was co-presented by Kevin Schroeder (Zend). Direct links (but make sure you visit Zend&#8217;s webinar page, there is plenty of other interesting stuff there): The recorded webinar (57 minutes) The slides used during the webinar, with some additional info in there]]></description>
		<wfw:commentRss>http://www.king-foo.be/2011/05/jenkins-webinar-for-zend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.zend.com/en/webinar/PHP/70170000000bXKj-webinar-using-jenkinshudson-for-continuous-builds-20110329.flv" length="0" type="video/x-flv" />
		</item>
		<item>
		<title>Presentation on Building Web Services with ZF</title>
		<link>http://www.king-foo.be/2010/07/presentation-on-building-web-services/</link>
		<comments>http://www.king-foo.be/2010/07/presentation-on-building-web-services/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 12:08:58 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web services]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.king-foo.be/?p=66</guid>
		<description><![CDATA[Yesterday, I tried a first attempt at presenting some info on &#8216;Building Web Services with Zend Framework&#8217;. Feedback is collected here and the slideshow is embedded below. Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vlissingen) View more presentations from King Foo.]]></description>
		<wfw:commentRss>http://www.king-foo.be/2010/07/presentation-on-building-web-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

