<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Sat, 25 May 2013 08:58:58 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Alvaro Videla: Using RabbitMQ in Unit Tests]]></title>
      <guid>http://www.phpdeveloper.org/news/19529</guid>
      <link>http://www.phpdeveloper.org/news/19529</link>
      <description><![CDATA[<p>
<i>Alvaro Videla</i> has a new post today showing how he <a href="http://videlalvaro.github.io/2013/04/using-rabbitmq-in-unit-tests.html">used RabbitMQ in his unit testing runs</a> with a small, quickly installed version of the server that can be removed once the tests are complete.
</p>
<blockquote>
In this blog post I want to show you a very simple technique for using RabbitMQ in our Unit or Functional Tests. Let's say you wrote a bunch of tests for your RabbitMQ consumers and then it's time to run them. To do that you probably need to setup a RabbitMQ server just for tests with their own users and passwords, or you need to set up a whole new virtual host for your tests. [...] With a future release of RabbitMQ that we can already test on the nightlies website, we can run RabbitMQ without the need to install Erlang. We created a package that ships a stripped down version of Erlang together with the broker bits, so running RabbitMQ now is as easy as downloading a tarball, uncompressing it and starting the server. 
</blockquote>
<p>
With a combination of this more self-contained package and some listener handling through PHPUnit, they uncompress the tarball with a PHP script and start the server with the defined configuration. Then, once the tests are done, it cleans itself up and removes the entire server directory to make for a clean run the next time.
</p>
Link: http://videlalvaro.github.io/2013/04/using-rabbitmq-in-unit-tests.html]]></description>
      <pubDate>Wed, 01 May 2013 09:10:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Software Gunslinger: PHP is meant to die, continued]]></title>
      <guid>http://www.phpdeveloper.org/news/19511</guid>
      <link>http://www.phpdeveloper.org/news/19511</link>
      <description><![CDATA[<p>
In his <a href="http://phpdeveloper.org/news/19417">previous post</a> ("PHP was meant to die") the point was made that PHP isn't really designed as a language to handle long running processes very well. It's made to handle a few operations and then die at the end of the request. In <a href="http://software-gunslinger.tumblr.com/post/48215406921/php-is-meant-to-die-continued">this follow up post</a> he talks more about using PHP for long running processes and a library that could help.
</p>
<blockquote>
Yes, I already acknowledged that PHP has a garbage collection implementation starting 5.3.0 and up (opt-in or opt-out, that's not the problem). I also acknowledge that garbage collection works, and is able to take care of most circular references just fine. [...] Anyway, as previously stated too, garbage collection is a great thing, but not enough for PHP. It's a borrowed feature that does not play well with old fundamental decisions inherited from the original design. Garbage collection is not a magical solution for every problem, like many tried to argue about. Let's illustrate with another example.
</blockquote>
<p>
His example uses the <a href="http://reactphp.org/">React</a> PHP library (a non-blocking I/O platform) to handle a lot of incoming data to a port and report back some memory usage and limit settings. He explains a bit about what's happening and shares the results of the test, including the end result - a fatal error when the memory limit was hit. He still comes to the same conclusion, ultimately...PHP is just not the language to use for long-running processes that do any large amount of work. 
</p>
Link: http://software-gunslinger.tumblr.com/post/48215406921/php-is-meant-to-die-continued]]></description>
      <pubDate>Fri, 26 Apr 2013 09:15:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP Podcast: Episode #2 - Adam Culp]]></title>
      <guid>http://www.phpdeveloper.org/news/19496</guid>
      <link>http://www.phpdeveloper.org/news/19496</link>
      <description><![CDATA[<p>
The PHP Podcast (from <a href="http://zend.com">Zend</a>) has posted its second episode - <a href="http://phppodcast.com/episode-2-adam-culp/">Episode #2</a>, an interview with <i>Adam Culp</i> who recently joined the team at Zend and is a organizer for the South Florida PHP User Group.
</p>
<blockquote>
In this episode we talk to Adam Culp on his very first day as a Zend employee. We talk about PHP community and Adam's decision to move from the realm of independent consultant to Zender! Adam is the organizer of <a href="http://sunshinephp.com/">SunshinePHP</a>, PHP Guru and joining the Zend Professional Services Team.
</blockquote>
<p>
You can listen to this latest episode either through the <a href="http://phppodcast.com/episode-2-adam-culp/">in-page player</a> or by <a href="http://phppodcast.com/wp-content/uploads/2013/04/TPHPP_002_Adam_Culp_April2013.mp3">downloading the mp3</a> directly. You can also <a href="http://phppodcast.com/feed/">subscribe to their feed</a> of you want this and future episodes pulled automatically.
</p>
Link: http://phppodcast.com/episode-2-adam-culp/]]></description>
      <pubDate>Tue, 23 Apr 2013 10:47:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[7PHP.com: Zend Certifications Tips & Tricks - Hear It From Zend Certified Engineer Eric Hogue]]></title>
      <guid>http://www.phpdeveloper.org/news/19492</guid>
      <link>http://www.phpdeveloper.org/news/19492</link>
      <description><![CDATA[<p>
On 7PHP.com there's a new post that interviews a PHP community member, <i>Eric Hogue</i>, about <a href="http://7php.com/zend-certification-advice-eric-hogue/">his experience with the Zend Certified Engineer exam</a>.
</p>
<blockquote>
This is the 3rd set of <a href="http://7php.com/category/zend-certification-tips/">Zend Certification Tips and Advice</a> to help anyone taking either of the two Zend Exams powered by <a href="http://en.wikipedia.org/wiki/Zend_Technologies">Zend Technologies</a>: the Zend PHP Certification Exam and/or the Zend Framework Certification Exam. The aim being to help people who want to sit for those exams and inform them what it is all about & what to expect by <a href="http://7php.com/category/expert-php-advice/">hearing it from (pro) PHP Guys</a> who have already been through it, that is => Hear It From Zend Certified Engineers!
</blockquote>
<p>
He starts off with some general questions to <i>Eric</i> about the exam and its structure and how he prepared himself for it. He mentions some of the resources he used to study and what kind of topics to pay attention to. There's also a few quotes included at the end giving <a href="http://penguindreams.org/blog/disappointe-with-zends-php5-certification">another perspective</a> on the exam (specifically, some frustrations).
</p>
Link: http://7php.com/zend-certification-advice-eric-hogue]]></description>
      <pubDate>Mon, 22 Apr 2013 12:16:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso: Enqueue Symfony's process components with PHP and ZeroMQ]]></title>
      <guid>http://www.phpdeveloper.org/news/19434</guid>
      <link>http://www.phpdeveloper.org/news/19434</link>
      <description><![CDATA[<p>
<i>Gonzalo Ayuso</i> has a new post today showing how he set up <a href="http://gonzalo123.com/2013/04/08/building-a-zeromq-enqueue-with-php/">queuing with ZeroMQ and Symfony components</a> and <a href="http://reactphp.org/">React</a>.
</p>
<blockquote>
Today I'd like to play with <a href="http://www.zeromq.org/">ZeroMQ</a>. ZeroMQ is a great tool to work with sockets. I will show you the problem that I want to solve: One web application needs to execute background processes but I need to execute those processes in order. Two users cannot execute one process at the same time. OK, if we face to this problem we can use Gearman. I've written various posts about Gearman (<a href="http://gonzalo123.com/2011/03/07/watermarks-in-our-images-with-php-and-gearman/">here</a> and <a href="http://gonzalo123.com/2010/11/01/database-connection-pooling-with-php-and-gearman/">here</a> for example). But today I want to play with ZeroMQ.
</blockquote>
<p>
He uses React and some ZeroMQ bindings and Symfony's <a href="https://github.com/symfony/Process">Process</a> component to make a simple client and server for working with the queue and processes. A screencast is included in the post showing them making the connection and adding the new process. The full code can be found <a href="https://github.com/gonzalo123/zmqlifo">on github</a> (or installable <a href="https://packagist.org/packages/gonzalo123/zmqlifo">via Composer</a>)
</p>
Link: http://gonzalo123.com/2013/04/08/building-a-zeromq-enqueue-with-php]]></description>
      <pubDate>Tue, 09 Apr 2013 11:11:59 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP Podcast: Episode #1 - Cal Evans]]></title>
      <guid>http://www.phpdeveloper.org/news/19385</guid>
      <link>http://www.phpdeveloper.org/news/19385</link>
      <description><![CDATA[<p>
The <a href="http://phppodcast.com/episode-1-cal-evans/">first episode</a> of a new PHP-related podcast, the "PHP Podcast" produced by <a href="http://zend.com">Zend</a>, has been released. This first episode, hosted by <i>Joe Stagner</i> features a well-known PHPer, <i>Cal Evans</i>.
</p>
<blockquote>
Cal Evans has been referred to as "The Ubiquitous Face of the PHP Community". That's made Cal an obvious choice for the first guest on the PHPPodcast. In this episode we chat about the evolving face of the PHP community.
</blockquote>
<p>
You can listen to this latest episode either through the <a href="http://phppodcast.com/episode-1-cal-evans/">in-page player</a>, by <a href="http://phppodcast.com/wp-content/uploads/2013/03/TPHPP_001_Cal_Evans.mp3">downloading the mp3</a> or by <a href="http://phppodcast.com/feed/">subscribing to their feed</a>.
</p>]]></description>
      <pubDate>Fri, 29 Mar 2013 12:38:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Duckout Blog: Do Funny Stuff with the Google Charts API and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19366</guid>
      <link>http://www.phpdeveloper.org/news/19366</link>
      <description><![CDATA[<p>
In <a href="http://www.duckout.de/programming/do-funny-stuff-with-the-google-charts-api-and-php/">this recent post</a> to the Duckout blog, they show you how to hook your PHP-based (and database driven) application into the Google Charting API for chart/graph generation.
</p>
<blockquote>
I think, whenever we see a chart in a magazine, in books or applications our brain say's to us Yeepie!!! Don't read these stupid texts or tables! Just look at the green or yellow line and hope that they are above the other lines or hope that your opinion is the biggest part of the pie¯. This saves us a lot of work and in my opinion we should concentrate on drawing beautiful colorized pie charts, instead of writing long boring articles. But the question is: ¯How do I draw these beautiful colorized pie charts? The simple answer is: you don't have to, because google will draw them for you and you just have to tell them what to draw via the google charts api.
</blockquote>
<p>
The <a href="https://github.com/Gamma32/breakfast">sample application</a> is a "breakfast rating" tool that logs the results to a MySQL database via PDO calls. The results are then extracted and formated as JSON to be compatible with the Google Charts API data handling. Some sample Javascript is included showing how to call the Charts API with your data and get back a simple line graphing of the data from the database. You can see the application in action <a href="http://breakfast.cloudcontrolled.com/">here</a> for reference.
</p>]]></description>
      <pubDate>Tue, 26 Mar 2013 11:40:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: A First Look at React]]></title>
      <guid>http://www.phpdeveloper.org/news/19365</guid>
      <link>http://www.phpdeveloper.org/news/19365</link>
      <description><![CDATA[<p>
On PHPMaster.com there's a new tutorial that <a href="http://phpmaster.com/a-first-look-at-react/">introduces you to React</a>, the PHP-based event-driven non-blocking socket tool that's similar to some of the functionality Node.js provides. The article is a very basic introduction but can help get your feet wet with the tool.
</p>
<blockquote>
For the past couple of years, <a href="http://nodejs.org/">Node.js</a> has been drawing increasing amounts of attention as a promising web technology. While it has some strengths, like being event driven, some people just want to stick to PHP. For over a year now, however, there has been a similar project for PHP named <a href="http://reactphp.org/">React</a>. React is mostly coded by <a href="https://igor.io/">Igor Wiedler</a>, who is also a prominent contributor to the <a href="https://github.com/fabpot/Silex">Silex framework</a>. While reading through the React examples, it really does look similar to Node.js.
</blockquote>
<p>
Included in the post are the instructions on how to get the latest version of React (via Composer) and the code to create a sample server that just writes out a string with a counter for the number of requests made. There's also an example of a "keystroke logger" for all data that's coming across the connection. The author (<i>Igor</i>) notes, however, that he wouldn't recommend using React in production, though, as its target is mostly those working with "cutting-edge technologies" rather than more stable applications.
</p>]]></description>
      <pubDate>Tue, 26 Mar 2013 10:01:33 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Iwan Luijks: E-mailing with PHP on Windows using Apache James]]></title>
      <guid>http://www.phpdeveloper.org/news/19280</guid>
      <link>http://www.phpdeveloper.org/news/19280</link>
      <description><![CDATA[<p>
<i>Iwan Luijks</i> has a recent post looking at how you can <a href="http://blog.iwanluijks.nl/#e-mailing-with-php-on-windows-using-apache-james">send email through PHP on Windows</a> via the <a href="http://james.apache.org/">Apache James</a> server.
</p>
<blockquote>
eveloping in PHP on Windows? Yep me too! Unfortunatly in opposite to developing on Linux, sending e-mail from PHP on Windows requires some more setup than just a bit of sendmail configuration. In this post I explain how to setup an Apache James Server and use it for e-mailing from PHP, all from and to your localhost.
</blockquote>
<p>
He walks you through the <a href="http://james.apache.org/download.cgi#Apache_James_2.3.2_is_the_stable_version">download</a> and installation and includes the changes you'll need to make to get it up and running correctly. He helps you test it's working correctly and how to get PHP set up and pointing to it for mail delivery. Finally, he has a line of PHP (using <a href="http://php.net/mail">mail</a>) to test the install and send a sample message.
</p>]]></description>
      <pubDate>Wed, 06 Mar 2013 12:02:48 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Jason Fox: Use the Accept Header to Set Your Return Data With Zend Framework 2]]></title>
      <guid>http://www.phpdeveloper.org/news/19222</guid>
      <link>http://www.phpdeveloper.org/news/19222</link>
      <description><![CDATA[<p>
<i>Jason Fox</i> has a recent post to his site about using <a href="http://neverstopbuilding.net/use-the-accept-header-to-set-your-return-data-with-zend-framework-2/?utm_source=reddit">"Accept" headers in Zend Framework 2 apps</a> to set the format of the return data from a request.
</p>
<blockquote>
In this article I detail the process by which you can set up your controller actions in Zend Framework 2 to return either the default HTML, or JSON data depending on the "Accept Header" in the request. It incorporates changes related to a security update added since this <a href="http://akrabat.com/zend-framework-2/returning-json-using-the-accept-header-in-zf2/">very helpful article</a> was written, and expands on some of the intricacies of making your web layer objects better "json providers."
</blockquote>
<p>
His example uses a "ViewJsonStrategy" and the criteria to look for to determine which version to respond with (HTML or JSON) - the Accept header. It uses the JSON encoder/decoder instead of the built-in PHP one to he could use the included "toJson" method to customize the output of the JSON instead of just returning everything.
</p>]]></description>
      <pubDate>Fri, 22 Feb 2013 11:42:35 -0600</pubDate>
    </item>
  </channel>
</rss>
