<?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>( f o o b a r . l u ) &#187; PHP</title>
	<atom:link href="http://foobar.lu/wp/category/coding/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://foobar.lu/wp</link>
	<description>coding should be fun</description>
	<lastBuildDate>Wed, 08 Sep 2010 13:10:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Studio forgetting about your ZF Project</title>
		<link>http://foobar.lu/wp/2009/06/16/zend-studio-forgetting-about-your-zf-project/</link>
		<comments>http://foobar.lu/wp/2009/06/16/zend-studio-forgetting-about-your-zf-project/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 14:40:21 +0000</pubDate>
		<dc:creator>wickeddoc</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://foobar.lu/wp/?p=56</guid>
		<description><![CDATA[as a php developer i&#8217;m using zend studio for eclipse on a daily basis. sometimes zend studio forgets about my zend framework projects, especially projects which are hosted on a SVN repository. i close my project, reopen it, and for no obvious reasons zend studio no longer recognizes it as a zend framework project. huch!?
until [...]]]></description>
			<content:encoded><![CDATA[<p>as a php developer i&#8217;m using zend studio for eclipse on a daily basis. sometimes zend studio forgets about my zend framework projects, especially projects which are hosted on a SVN repository. i close my project, reopen it, and for no obvious reasons zend studio no longer recognizes it as a zend framework project. huch!?</p>
<p>until now i was unable to find a real solution to my problem, but here&#8217;s a little workaround which should get you up and running again, in case you&#8217;re running into the same problem.</p>
<p>close the project, then just open the .project file at the root of your project in your favourite text editor and check the &#8216;natures&#8217; section, make sure it contains the following line:</p>
<div class="codecolorer-container xml twitlight" style="overflow:auto;white-space:nowrap;width:530px"><div class="xml codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc3"><span class="re1">&lt;nature<span class="re2">&gt;</span></span></span>org.zend.php.framework.ZendFrameworkNature<span class="sc3"><span class="re1">&lt;/nature<span class="re2">&gt;</span></span></span></div></div>
<p>that should do the trick.</p>
]]></content:encoded>
			<wfw:commentRss>http://foobar.lu/wp/2009/06/16/zend-studio-forgetting-about-your-zf-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OverkillFlickr: a Flickr API interface for PHP5</title>
		<link>http://foobar.lu/wp/2007/07/09/overkillflickr-a-flickr-api-interface-for-php5/</link>
		<comments>http://foobar.lu/wp/2007/07/09/overkillflickr-a-flickr-api-interface-for-php5/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 15:55:55 +0000</pubDate>
		<dc:creator>wickeddoc</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://foobar.lu/wp/2007/07/09/overkillflickr-a-flickr-api-interface-for-php5/</guid>
		<description><![CDATA[I create a small Flickr API interface for PHP5 which takes advantage of the Overloading feature of PHP5.
Using the __call method we can dynamically create an interface to all the Flickr API functions using only a very small script.
The name of the class is purely ironic as it is a very simple and easy-to-use class [...]]]></description>
			<content:encoded><![CDATA[<p>I create a small Flickr API interface for PHP5 which takes advantage of the Overloading feature of PHP5.</p>
<p>Using the __call method we can dynamically create an interface to all the Flickr API functions using only a very small script.</p>
<p>The name of the class is purely ironic as it is a very simple and easy-to-use class and far from Overkill.</p>
<p><span id="more-12"></span></p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;width:530px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">class</span> OverkillFlickr <span class="br0">&#123;</span><br />
<br />
&nbsp; &nbsp; <span class="co2"># the API key we got from flickr</span><br />
&nbsp; &nbsp; <span class="kw2">private</span> <span class="re0">$API</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw3">static</span> <span class="kw2">private</span> <span class="re0">$instance</span> <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co2"># singleton constructor</span><br />
&nbsp; &nbsp; <span class="kw3">static</span> <span class="kw2">function</span> instance<span class="br0">&#40;</span><span class="re0">$api_key</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span>OverkillFlickr<span class="sy0">::</span><span class="re0">$instance</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; OverkillFlickr<span class="sy0">::</span><span class="re0">$instance</span> <span class="sy0">=</span> <span class="kw2">new</span> OverkillFlickr<span class="br0">&#40;</span><span class="re0">$api_key</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> OverkillFlickr<span class="sy0">::</span><span class="re0">$instance</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; <span class="kw2">function</span> __construct<span class="br0">&#40;</span><span class="re0">$api_key</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">API</span> &nbsp;<span class="sy0">=</span> <span class="re0">$api_key</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="co2"># the __call method allows us to dynamically create any</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2"># flickr api function we want.</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2"># takes an array of arguments</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2"># example: to call the flickr.people.findByEmail service</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2"># $flickr = OverkillFlickr::instance(&quot;my API key&quot;); // API key only needed on the first call</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2"># $result = $flickr-&gt;people_findByEmail(array(&quot;find_email&quot; =&gt; &quot;my.pattern@domain.com&quot;));</span><br />
&nbsp; &nbsp; <span class="kw2">function</span> __call<span class="br0">&#40;</span><span class="re0">$method</span><span class="sy0">,</span> <span class="re0">$arguments</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="re0">$method</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;_&quot;</span><span class="sy0">,</span> <span class="st0">&quot;.&quot;</span><span class="sy0">,</span> <span class="re0">$method</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$argument</span> <span class="sy0">=</span> <span class="re0">$arguments</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$method</span><span class="br0">&#41;</span> <span class="sy0">||</span> <span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$argument</span><span class="br0">&#41;</span> <span class="sy0">||</span> <span class="sy0">!</span><span class="kw3">is_array</span><span class="br0">&#40;</span><span class="re0">$argument</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="re0">$params</span> <span class="sy0">=</span> <span class="kw3">array_merge</span><span class="br0">&#40;</span><span class="re0">$params</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$argument</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="re0">$params</span><span class="br0">&#91;</span><span class="st_h">'api_key'</span><span class="br0">&#93;</span> &nbsp;<span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">API</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$params</span><span class="br0">&#91;</span><span class="st_h">'method'</span><span class="br0">&#93;</span> &nbsp; <span class="sy0">=</span> <span class="st0">&quot;flickr.&quot;</span> <span class="sy0">.</span> <span class="re0">$method</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$params</span><span class="br0">&#91;</span><span class="st_h">'format'</span><span class="br0">&#93;</span> &nbsp; <span class="sy0">=</span> <span class="st0">&quot;php_serial&quot;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="re0">$encoded_params</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$params</span> <span class="kw1">as</span> <span class="re0">$k</span> <span class="sy0">=&gt;</span> <span class="re0">$v</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$encoded_params</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw3">urlencode</span><span class="br0">&#40;</span><span class="re0">$k</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'='</span><span class="sy0">.</span><span class="kw3">urlencode</span><span class="br0">&#40;</span><span class="re0">$v</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="co2"># call the API and decode the response</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$url</span> <span class="sy0">=</span> <span class="st0">&quot;http://api.flickr.com/services/rest/?&quot;</span><span class="sy0">.</span><span class="kw3">implode</span><span class="br0">&#40;</span><span class="st_h">'&amp;'</span><span class="sy0">,</span> <span class="re0">$encoded_params</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$rsp</span> <span class="sy0">=</span> <span class="kw3">file_get_contents</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$rsp_obj</span> <span class="sy0">=</span> <span class="kw3">unserialize</span><span class="br0">&#40;</span><span class="re0">$rsp</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="co2">#</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2"># return the response from flickr</span><br />
&nbsp; &nbsp; &nbsp; <span class="co2">#</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$rsp_obj</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; <span class="br0">&#125;</span></div></div>
<p>I suggest that you add some caching of the results you get from Flickr if you don&#8217;t want to hammer their servers too much.</p>
]]></content:encoded>
			<wfw:commentRss>http://foobar.lu/wp/2007/07/09/overkillflickr-a-flickr-api-interface-for-php5/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
