<?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/"
	>

<channel>
	<title>echolibre blog &#187; PEAR</title>
	<atom:link href="http://blog.echolibre.com/category/pear/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.echolibre.com</link>
	<description></description>
	<pubDate>Tue, 25 May 2010 13:52:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Go the right way with WonderProxy</title>
		<link>http://blog.echolibre.com/2010/04/go-the-right-way-with-wonderproxy/</link>
		<comments>http://blog.echolibre.com/2010/04/go-the-right-way-with-wonderproxy/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 17:11:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[proxy]]></category>

		<category><![CDATA[testing]]></category>

		<category><![CDATA[wonderproxy]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=910</guid>
		<description><![CDATA[As the web grows, we developers have to write applications that are not location centric but rather develop applications that can be viewed by anyone around the world. Any developer that had to write such software probably has used GeoIP and has encountered issues when the time came to test their application. The only real [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="size-full wp-image-917" style="margin: 15px;" title="WonderProxy" src="http://blog.echolibre.com/wp-content/uploads/2010/04/wp1.png" alt="WonderProxy" width="210" height="66" align="left" />As the web grows, we developers have to write applications that are not location centric but rather develop applications that can be viewed by anyone around the world. Any developer that had to write such software probably has used <a title="GeoIP Maxmind Database" href="http://maxmind.com">GeoIP</a> and has encountered issues when the time came to test their application. The only real way to test your application, without setting up servers around the world, is to assume that your code works and that the GeoIP database is working correctly.</p>
<p style="text-align: justify;"><span id="more-910"></span></p>
<p style="text-align: justify;">This is obviously a flaw in the quality &amp; assurance of your product because you can absolutely never assume that your code works correctly. However, if you have tests to prove that your code works fine, then you are entitled to make such pretentious claim.</p>
<p style="text-align: justify;">If you don&#8217;t understand what I mean, consider the following example:</p>
<blockquote><p>On the <a title="PEAR PHP" href="http://pear.php.net/">PEAR</a> website we now have mirrors that automatically detect where you are coming from and direct you towards the closest mirror for downloading packages.</p></blockquote>
<p>The only way we had to test this feature was to ask someone say in Germany to test if he was being redirected to the German mirror and so on. This has obvious implications and it makes it impossible to automate tests.</p>
<p style="text-align: justify;">That was until <a title="WonderProxy Website" href="http://wonderproxy.com/?src=davidrocks">WonderProxy</a> came along. WonderProxy provides you with HTTP proxies around the world or precisely:</p>
<blockquote><p>WonderProxy provides HTTP proxies around the world to help you test GeoIP web applications. This paid service makes testing and re-testing applications from around the world fast and easy</p></blockquote>
<p style="text-align: justify;">Basically WonderProxy allows you to connect from anywhere in the world. This means that you could easily write automated tests and verify where your site is sending you or you could test the template that is being used, or whichever scenario you might have to test.</p>
<p>Paul from WonderProxy offered PEAR a free WonderProxy account to test whichever feature we wanted to test, and so I hereby would like to thank him and his really nifty service.</p>
<p>Go on! <a title="WonderProxy" href="http://wonderproxy.com/?src=davidrocks">TRY IT</a>! <a title="WonderProxy Website" href="http://wonderproxy.com/?src=davidrocks">GO</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/go-the-right-way-with-wonderproxy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Switzerland, Microsoft and the JumpInCamp!</title>
		<link>http://blog.echolibre.com/2010/04/switzerland-microsoft-and-the-jumpincamp/</link>
		<comments>http://blog.echolibre.com/2010/04/switzerland-microsoft-and-the-jumpincamp/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 16:13:28 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[Cloud Computing]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[frapi]]></category>

		<category><![CDATA[jumpincamp]]></category>

		<category><![CDATA[nosql]]></category>

		<category><![CDATA[OData]]></category>

		<category><![CDATA[sqlserver]]></category>

		<category><![CDATA[webdeploy]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=898</guid>
		<description><![CDATA[As some of you may know from the tweets I&#8217;ve been posting for nearly 3 weeks now, I was invited to attend the very first edition of the JumpInCamp organized by Microsoft in April 2010.
The goal of this camp was to get the European PHP community leaders together and learn about the new products and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">As some of you may know from the tweets I&#8217;ve been posting for nearly 3 weeks now, I was invited to attend the very first edition of the <a title="Microsoft JumpInCamp" href="http://jumpincamp.com">JumpInCamp</a> organized by Microsoft in April 2010.</p>
<p style="text-align: justify;">The goal of this camp was to get the European PHP community leaders together and learn about the new products and new ideas Microsoft are working on. For those of you who read about the <a title="Microsoft Web Developer Summit" href="http://blog.echolibre.com/2009/12/microsoft-web-developer-summit/">Microsoft web developer summit</a> that took place in Redmond in December 2009 you might think it was the same thing however you would be utterly wrong.</p>
<p style="text-align: justify;">While the camp in Redmond was very informative and we are learnt a great deal of new features coming up with Microsoft, it was vastly different than the <a title="Microsoft JumpInCamp" href="http://jumpincamp.com">JumpinCamp</a> in Zurich where the focus of the camp was to get the developers to interact with the actual Microsoft developers instead of only learning about new features. The point of the JumpinCamp was to get your hands dirty in code so we all got a few hours of lectures, then sat down and worked on either implementing those solutions into our respective Open Source projects or even discussed and raised concerns we might have regarding some of their products.</p>
<p>I thought it might be nice to share some of the projects I&#8217;ve started working on while I was over there and what I had interests in:<br />
<span id="more-898"></span></p>
<h2 style="text-align: justify;">OData</h2>
<p style="text-align: justify;">After meeting with Claudio Caldato, the program manager for the Interoperability team, we went over the <a title="The Open Data Protocol" href="http://odata.org">OData</a> project and after looking at the position of <a title="The Open Data Protocol" href="http://odata.org">OData</a> and it&#8217;s potential, I decided to join the team and start by developing a <a title="PEAR PHP" href="http://pear.php.net">PEAR</a> package that will allow producers to publish valid OData <a title="Atom Pub" href="http://bitworking.org/projects/atom/rfc5023.html">Atom Pub feeds</a> and serve as a base driver for the PHP community (Which could be easily ported to <a title="Zend Framework" href="http://zendframework.com/">Zend Framework</a>, <a title="The Symfony Project" href="http://www.symfony-project.org/">Symfony</a>, <a title="Lithium Rad PHP Framework!" href="http://lithify.me">Lithium</a>, etc.)</p>
<p style="text-align: justify;">Obviously one of the reason for and OData producer package is to be able to make all the Frapi users potential OData producers. Moreover, as some of you know, sometimes I get into rants about web semantics and microformat. When I saw OData I realized that we could potentially bring some microformat standards within OData Atom Pub feeds (Or JSON Feeds).</p>
<p style="text-align: justify;">Another thing that lit me up was the JSON feed. As some of you may have read on this very blog a few months ago I wrote an article about having something called <a title="Practical Json Format Standard" href="http://blog.echolibre.com/2009/04/practical-json-format-standard/">PJSF</a> which basically is the concept or idea of defining a standard format for JSON feeds. When I saw that OData has the ability to generate JSON feeds, I obviously jumped on the occasion of making a difference in the semantics world <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2 style="text-align: justify;">Azure</h2>
<p style="text-align: justify;"><a title="Microsoft Azure" href="http://www.microsoft.com/windowsazure/ ">Azure</a> basically is a platform that offers a flexible, familiar environment for developers to create cloud applications and services. With Windows Azure, you can shorten your time to market and adapt as demand for your service grows.</p>
<p style="text-align: justify;">What does is really mean? Azure is an <strong>all-in-one cloud solution</strong>. Even though the concepts are a bit arduous to grasp, we can all thank <a title="Josh Holmes Blog And Azure Resource" href="http://www.joshholmes.com/blog/">Josh Holmes</a> and <a title="Maarten Balliauw Blog" href="http://blog.maartenballiauw.be">Maarten Balliauw</a> for their essential presence at this camp to help us with all the questions we had and their thorough understanding of their baby (Azure).</p>
<p style="text-align: justify;">Azure was another thing that sprung to my mind for <a title="Frapi Open Source API Framework" href="http://getfrapi.com">Frapi</a>. What if we could get our Frapi customers to be deployed directly into the cloud? Obviously it&#8217;s possible to hack around all the possible Amazon web services and to get somewhat arranged so our customers would be on EC2 servers, however with Azure it seems almost natural to deploy and it&#8217;s clearly made for enterprises.</p>
<h2 style="text-align: justify;">TableStorage</h2>
<p style="text-align: justify;">This is Microsoft&#8217;s very own NoSQL answer. The Table service offers structured storage in the form of tables. It also exposes a REST API for working with tables and the data that they contain.</p>
<p style="text-align: justify;">This one I am still uncertain about. I think I like it, but I&#8217;ll have to work a bit more into finding more information regarding it&#8217;s internals. I really like the idea of their multiple slave replication however with the lack of documentation I could not, right now, take the executive decision of opting for <a title="TableStorage" href="http://msdn.microsoft.com/en-us/library/dd179423%28v=MSDN.10%29.aspx">TableStorage</a> instead of say <a title="CouchDB #nosql document based database" href="http://couchdb.apache.org">CouchDB</a> or <a title="MongoDB" href="http://www.mongodb.org">MongoDB</a>. Nevertheless, the fact that it&#8217;s part of Azure gives it a big +1.</p>
<h2 style="text-align: justify;">Pivot</h2>
<p style="text-align: justify;">Alex is probably one of the coolest guy to hang out with and also has a brilliant product called <a title="Pivot Microsoft" href="http://www.getpivot.com/">Pivot</a>. I couldn&#8217;t tell you much more about Pivot apart from the fact that it&#8217;s a great tool if you want have to analyze large amounts of data with many different criteria. Seriously though, check it out, his demo and seeing it live is simple stunning. He also briefly introduced me to the art of <a title="Microsoft DeepZoom on Wikipedia" href="http://en.wikipedia.org/wiki/Deep_Zoom">DeepZooming</a> and the <a title="Microsoft SeaDragon" href="http://www.seadragon.com">SeaDragon</a> technology</p>
<p style="text-align: justify;">Altogether I suggest you give the <a title="Microsoft Livelabs - seadragon, deepzoom, photosync, pivot" href="http://livelabs.com/">livelabs</a> a look. They are doing some amazing work there!</p>
<h2 style="text-align: justify;">SQL Server</h2>
<p style="text-align: justify;">Even though I haven&#8217;t been into the RDBMS world for quite a while now (Being sucked into #nosql), I used to do quite a bit of SQL Server, in fact I&#8217;m still involved in the SQL Server <a href="http://pear.php.net/MDB2_Driver_sqlsrv">MDB2</a> package and it was nice to finally be able to discuss with a developer of the SQL Server Engine Jason Stowe and the Program Manager of the SQL Server Connectivity with PHP Ashay Chaudhary (Who is now on twitter <a title="Ashay From Microsoft on Twitter" href="http://twitter.com/ashay_c">@ashay_c</a>!) about the status of the SQL Driver in PHP (Or lack thereof) and intensively vent about a few things like the lack of up-to-date PDO SQL Server driver.</p>
<p>Fair play to both the SQL Server guys who have done a brilliant job at the camp helping everyone that needed help as well!</p>
<h2 style="text-align: justify;">WebDeploy</h2>
<p style="text-align: justify;">This is definitely one of the tools I would have like to have 1-2 more days to play with. After a filled in event and work week, I finally managed to get some time to discuss the potential of deploy Frapi on Windows machines with the lovely Faith Allington. After playing for a few hours we had the base of the package however the day was ending and we were going to a lounge. Having our priorities set very straight in conferences, most of us headed out to the bar/lounge and so we didn&#8217;t have time to finish the Frapi <a title="IIS Microsoft WebDeploy" href="http://www.iis.net/download/WebDeploy">WebDeploy</a> implementation. Faith being of good nature gave me her email address and told me we could setup a conference call and keep working on the WebDeploy implementation of Frapi! How about that!</p>
<h2 style="text-align: justify;">Finally</h2>
<p>During this week, not only did I learn loads of stuff about Microsoft product, I also learnt some russian card game which encourages cheating (lovely!), I learnt how to say: &#8220;Ich lebe in einem Pilz!&#8221; and how to play cow-poo-golf. Great Switzerland!</p>
<p style="text-align: justify;">On a more serious note however, I would just like to finish on the usual cheesy note and say thanks to Microsoft and especially <a title="Yuriy Saytsev on Twitter" href="http://twitter.com/yuriy_the_z">Yuriy Zaytsev</a> for organizing, <a title="Josh Homes on Twitter" href="http://twitter.com/joshholmes">Josh Holmes</a> for his general welcoming and helpful attitude, Nicole Zahnd for organizing the flights and hotels perfectly and obviously everyone from the Microsoft team that stayed with us this week and listened to our rants and complaints about their product! Looking forward to next year (wink)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/switzerland-microsoft-and-the-jumpincamp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Capsule CRM API and PHP</title>
		<link>http://blog.echolibre.com/2010/04/the-capsule-crm-api-and-php/</link>
		<comments>http://blog.echolibre.com/2010/04/the-capsule-crm-api-and-php/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 15:02:23 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[API]]></category>

		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[capsulecrm]]></category>

		<category><![CDATA[developer]]></category>

		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=881</guid>
		<description><![CDATA[Introduction
At echolibre we&#8217;ve been trying to organize our sales and customer relationship in a more efficient way as the company customer base is getting larger and larger. That&#8217;s natural process for any growing company. In order to help us organize how we do everything related to customers (Sales, Leads, Relationships, etc) we are giving Capsule [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p style="text-align: justify;">At echolibre we&#8217;ve been trying to organize our sales and customer relationship in a more efficient way as the company customer base is getting larger and larger. That&#8217;s natural process for any growing company. In order to help us organize how we do everything related to customers (Sales, Leads, Relationships, etc) we are giving <a title="Capsule CRM" href="http://capsulecrm.com">Capsule CRM</a> a good run.</p>
<p style="text-align: justify;"><a title="Capsule CRM" href="http://capsulecrm.com">Capsule CRM</a> is basically a nice CRM tool that takes the boring part out of CRM&#8217;ing. Moreover (And the whole reason of this blog post), it has an <a title="Capsule CRM API" href="http://capsulecrm.com/help/page/api_gettingstarted">API</a> and as you all know, <a title="Frapi" href="http://getfrapi.com">we LOVE APIs</a>.</p>
<p style="text-align: justify;">Therefore, we realized that we needed to integrate Capsule with some online services we have and so we built a <a title="PHP Language" href="http://php.net">PHP</a> wrapper for their API to give developers the ability to place requests and use the web service as they wish using PHP</p>
<p style="text-align: justify;"><a title="Services_Capsule PEAR Proposal PEPr" href="http://pear.php.net/pepr/pepr-proposal-show.php?id=629">Services_Capsule</a> is now being proposed to <a title="PEAR PHP" href="http://pear.php.net">PEAR</a> however you can already get the code from <a title="Services_Capsule on Github" href="http://github.com/davidcoallier/Services_Capsule">http://github.com/davidcoallier/Services_Capsule</a> and start using it. The lack of end-user documentation may be the greatest lack in the package right now so I figured it might be good to post a few usage examples in a post.</p>
<h2><span id="more-881"></span>Meat</h2>
<p style="text-align: justify;">So once you installed the Services_Capsule (Or for now cloned the repo and pointed your include_path to the repo-checkout) you&#8217;ll probably want to see how to use it. Even though the code has a list of examples, it might be best to show you a real world example:</p>
<script src="http://gist.github.com/351863.js"></script>
<p>Be sure to watch the examples directory as examples will make their way through there in the coming days.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/the-capsule-crm-api-and-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Catching up on ZendCon</title>
		<link>http://blog.echolibre.com/2009/10/catching-up-about-zendcon/</link>
		<comments>http://blog.echolibre.com/2009/10/catching-up-about-zendcon/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 11:42:34 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[frontend caching]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[zendcon]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=630</guid>
		<description><![CDATA[Helgi's ZendCon aftermath]]></description>
			<content:encoded><![CDATA[<p>Last week our very own <a href="http://helgi.ws">Helgi</a> was at <a title="ZendCon" href="http://www.zendcon.com/">ZendCon</a> in San José, California. He was there as a speaker to talk about Frontend Caching and &#8220;PEAR2 and Pyrus&#8221;</p>
<blockquote><p>The first talk I gave was about frontend caching and how you can get the most speed out of your website by optimizing the various bits of the frontend.</p></blockquote>
<p>Make sure to catch &#8220;The aftermath&#8221; on <a title="ZendCon, the aftermath" href="http://helgi.ws/2009/10/28/zendcon-the-aftermath/">Helgi&#8217;s blog</a> as you may get a better idea of what we do in conferences and what happens in general! <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/10/catching-up-about-zendcon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Recommended PHP Standards Group</title>
		<link>http://blog.echolibre.com/2009/06/recommended-php-standards-group/</link>
		<comments>http://blog.echolibre.com/2009/06/recommended-php-standards-group/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 15:03:08 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=426</guid>
		<description><![CDATA[Introduction
A few weeks ago, Helgi and I attended PHP&#124;Tek 2009 in Chicago, as both representatives of echolibre and The PEAR Group.
This post will briefly discuss the formation of a Recommended PHP Standards Group, as put forward by a meeting of PHP developers at the conference. As would be expected, a bit of controversy surrounds this [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>A few weeks ago, Helgi and I attended <a title="PHP Tek" href="http://tek.mtacon.com/" target="_self">PHP|Tek 2009</a> in Chicago, as both representatives of echolibre and <a title="The PEAR Group" href="http://pear.php.net/group/">The PEAR Group</a>.</p>
<p>This post will briefly discuss the formation of a Recommended PHP Standards Group, as put forward by a meeting of PHP developers at the conference. As would be expected, a bit of controversy surrounds this proposal, but my hope would be that it would be accepted and grow within the global PHP community in the coming years.</p>
<p>As posted by <a title="Travis Swicegood's Blog about tek 2009 PHP Standards Group" href="http://short.ie/5w40f3" target="_self">Travis Swicegood</a>, a group of community project representatives came together to discuss naming standards for PHP 5.3 and above. (I would like to take the opportunity to publicly thank the staff of the PHP|Tek conference for providing us with a large meeting room with little more than 2 hours notice).</p>
<h2><span id="more-426"></span></h2>
<h2>So, what&#8217;s this all about?</h2>
<p>With PHP 5.3 being closer to a stable release, the inclusion of namespaces and packaging within projects will take on a whole new meaning for large projects. People representing The PEAR Group (PEAR2), The Zend Framework, Cake PHP, Solar PHP, Agavi and unofficial representatives of Symfony and Phing met together and we discussed standards that could benefit each of the projects and the community in general.</p>
<h3>Attending were</h3>
<ul>
<li><a title="Agavi" href="http://www.agavi.org/">Agavi</a> - <a title="@dzuelke" href="http://twitter.com/dzuelke">David Zülke</a>;</li>
<li><a title="Cake PHP" href="http://cakephp.org/">Cake</a> - <a title="@nateabele" href="http://twitter.com/nateabele">Nate Abele</a>;</li>
<li><a title="The PEAR Group" href="http://pear.php.net/">PEAR</a> - <a title="@saltybeagle" href="http://twitter.com/saltybeagle">Brett Bieber</a>, <a title="@davidcoallier" href="http://twitter.com/davidcoallier">David Coallier</a>, <a title="@h" href="http://twitter.com/h">Helgi Þormar Þorbjörnsson</a>, <a title="@tswicegood" href="http://twitter.com/tswicegood">Travis Swicegood</a>;</li>
<li><a title="Phing" href="http://phing.info/trac/">PhING</a> - <a title="@tswicegood" href="http://twitter.com/tswicegood">Travis Swicegood</a>;</li>
<li><a title="Solar PHP" href="http://solarphp.com/">Solar </a>- <a title="@pmjones" href="http://twitter.com/pmjones">Paul Jones</a>;</li>
<li><a title="Symfony Project" href="http://www.symfony-project.org/">Symfony</a> - <a title="@skoop" href="http://twitter.com/skoop">Stefan Koopmanschap</a>;</li>
<li><a title="Zend Framework" href="http://framework.zend.com/">Zend Framework</a> - <a href="http://weierophinney.net/matthew/ ">Matthew Weier O&#8217;Phinney</a>;</li>
<li> and the always amiable (i.e., at-large community member), <a title="@calevans" href="http://twitter.com/calevans">Cal Evans</a>.</li>
</ul>
<p>Being a PEAR representative with Travis, Helgi and Brett we brought to the table the feedback and problems that we have been facing over the past year and a half with namespacing standards discussions, Matthew Weier O&#8217;Phinney from the Zend Framework brought their issues, same for Agavi, Solar, Cake and Symfony (Stefan is an unofficial representative). We brewed and stormed our issues, brought solutions and came up with a standard for namespacing and package structure.</p>
<h2>Sneak Preview</h2>
<p>Here are a few hints about the standards (<a title="Google Groups Discussions on PHP Standards Group" href="http://short.ie/zs6m32" target="_self">outlined on this page</a>) which cover things like namespace packaging structure, exceptions, abstract class naming, interface naming, and concrete class naming.</p>
<h3>Namespaces</h3>
<p>All packages should be named:<br />
<em> &lt;vendor&gt;\&lt;package_or_component&gt;\&lt;ClassName&gt;</em></p>
<p>Example:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
    namespace pear2\text_diff\Diff<span style="color: #339933;">;</span>
    namespace zend\controller\FrontController<span style="color: #339933;">;</span>
    namespace cake\models\DatabaseModel<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<h3>Exception Naming</h3>
<ul>
<li>All packages must declare at package level Exception (i.e., <em>pear2\text_diff\Exception</em>)</li>
<li> All packages should use <a title="SPL Exceptions" href="http://ie.php.net/manual/en/spl.exceptions.php" target="_self">SPL Exceptions</a> where applicable</li>
</ul>
<p>All of the above mentioned projects consented to this standard as of PHP 5.3. What this means to users and developers is that the barrier for entry from one framework to another becomes greatly reduced and the interoperability of packages between projects is tremendously improved.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/06/recommended-php-standards-group/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PEAR Strikes again</title>
		<link>http://blog.echolibre.com/2009/03/pear-strikes-again/</link>
		<comments>http://blog.echolibre.com/2009/03/pear-strikes-again/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 16:52:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[footprintapp]]></category>

		<category><![CDATA[ireland]]></category>

		<category><![CDATA[webstrong]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=186</guid>
		<description><![CDATA[The other company we collaborate with on short.ie has released a private beta of a new application a short while ago. The web application is basically a business collaboration tool that allows someone to keep a consistent tracking over projects and clients, management of tasks, management of documents (online document manager) and much more.
I would [...]]]></description>
			<content:encoded><![CDATA[<p>The other company we collaborate with on <a title="Short.ie social url shortening" href="http://short.ie" target="_blank">short.ie</a> has released a private beta of a new application a short while ago. The web application is basically a business collaboration tool that allows someone to keep a consistent tracking over projects and clients, management of tasks, management of documents (online document manager) and much more.</p>
<p>I would seriously recommend people (<a title="Annoing manager" href="http://tbn3.google.com/images?q=tbn:JDdT6JPRmgp_BM:http://www.sqlservercentral.com/Images/1889.jpg" target="_blank">managers</a>, <a title="Developers" href="http://tbn2.google.com/images?q=tbn:G7ue1Y_GQsVJbM:http://donnabarstow.com/cartoons/wp-content/uploads/2008/07/dilbert.jpg" target="_blank">developers</a>, etc) to look at it and register for the BETA version because having been granted access to test and give feedback, we, as private beta testers, found it really nice, insightful and simple to use.</p>
<p>This web app has a huge potential (internationally) and is developed following a solid architecture. Being strong <a title="PEAR Project" href="http://pear.php.net" target="_blank">PEAR</a> contributors we are of course happy to take a look at what helped the <a title="Footprint app business colaboration" href="http://footprintapp.com" target="_blank">footprintapp.com</a> team achieve such a great product. So I went ahead and asked a few questions to <a title="Iarfhlaith Kelly" href="http://www.iarfhlaith.com/" target="_blank">Iarfhlaith Kelly</a> from <a title="Webstrong" href="http://webstrong.ie" target="_blank">webstrong</a>.</p>
<blockquote><p><strong>Q: How long have you been using PEAR?</strong><br />
<em>A: I dabbled with a few of the PEAR packages back in college (2001-2005). Mostly I used the database abstraction packages like <a title="PEAR::DB database abstraction layer" href="http://pear.php.net/DB" target="_blank">DB</a> and <a title="PEAR::MDB2 database abstraction layer" href="http://pear.php.net/MDB2" target="_blank">MDB2</a>. It was great to use on object oriented approach to interact with a database. After college though, from 2005 onwards, I ventured much deeper into the PEAR packages because as a freelance developer I was getting a lot more requests from clients.</em></p></blockquote>
<blockquote><p><strong>Q: How does PEAR help you in your daily development life?</strong><br />
<em>A: Using PEAR has greatly reduced the amount of code I&#8217;ve needed to write on the &#8216;heavy lifting&#8217; areas of web development. This lets me focus on the flow of the system and spend more time building features that make my app unique, rather then re-inventing the wheel on some of the more common features often needed in most modern web apps.</em></p>
<p><em>Also, because of PEAR&#8217;s command line interface for installing and updating packages (both locally and remotely) it has made maintaining the code packages a lot easier then if I had to download and upgrade each one manually. This saves a lot of time during system upgrades.</em></p></blockquote>
<blockquote><p><strong>Q: What do you use it for (packages you use)</strong><br />
<em>A: Well, like I mentioned before I started off by using DB and MDB2 in college, but once I started using PEAR on client projects I quickly learned about the XML parsing libraries, HTTP requests, MS Excel generation, encryption, authentication, and email. I used a number of key PEAR libraries without which I would still be building it today. These were:</em><br />
<em></em><br />
<em>* <a title="PEAR::Auth_HTTP" href="http://pear.php.net/Auth_HTTP" target="_blank">Auth_HTTP</a> for HTTP based authentication</em><br />
<em> * MDB2 for database abstraction</em><br />
<em></em><br />
<em>The system also communicates with a number of other web services, such as <a title="Amazon s3 cloud storage/authentication" href="http://aws.amazon.com/s3/" target="_blank">Amazon&#8217;s S3 service</a> and authentication services via the <a title="OpenID distributed authentication" href="http://openid.net" target="_blank">OpenID</a> format. To communicate with these, I use:</em><br />
<em></em><br />
<em>* <a title="PEAR::XML_Parser XML Parsing with PEAR" href="http://pear.php.net/XML_Parser" target="_blank">XML_Parser</a> for processing the returned information</em><br />
<em>* <a title="PEAR::HTTP_Request" href="http://pear.php.net/HTTP_Request" target="_blank">HTTP_Request</a> for sending commands and data to the web services</em><br />
<em></em><br />
<em>Because of the standard approach to documentation across all PEAR for these packages allowed me to hit the ground running on new packages.</em></p></blockquote>
<p>This is yet another great experience by PEAR users and we are glad to be helping and best of luck to <a title="Webstrong" href="http://webstrong.ie" target="_blank">webstrong</a> and footprintapp for the future!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/03/pear-strikes-again/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
