<?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>Tue, 21 May 2013 04:20:29 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Jonathan Hill:  Video: Multi-tasking in PHP (from Atlanta PHP)]]></title>
      <guid>http://www.phpdeveloper.org/news/18965</guid>
      <link>http://www.phpdeveloper.org/news/18965</link>
      <description><![CDATA[<p>
<i>Jonathan Hill</i> has <a href="http://jonathonhill.net/2012-12-19/video-multi-tasking-in-php/">posted the video</a> of his recent presentation at the <a href="http://atlantaphp.org">Atlanta PHP User Group</a>, "Multi-tasking in PHP".
</p>
<blockquote>
When it comes to multi-tasking and interacting with the operating system, PHP is no lightweight. In this December 6, 2012 presentation Jonathon Hill (<a href="http://twitter.com/compwright">@compwright</a>) explores PHP's little-known POSIX, Process Control, and Semaphore extensions and shows you how to introduce a parallel dimension to your applications.
</blockquote>
<p>
<a href="http://www.slideshare.net/compwright/multiprocessing">His presentation</a> covers the use of multi-tasking to accomplish some common tasks in PHP (like batch processing or creating daemons). He talks about multi-processing vs multi-threading, forking, race conditions and semaphores.
</p>
<p>
You can watch the <a href="http://vimeo.com/55950992">video</a> of the presentation over on Vimeo and check out the software and links to other resources mentioned in the talk in <a href="http://bitly.com/atlphpm">this link bundle</a>.
</p>]]></description>
      <pubDate>Fri, 28 Dec 2012 11:33:15 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Nikita Popov: Cooperative multitasking using coroutines (in PHP!) ]]></title>
      <guid>http://www.phpdeveloper.org/news/18941</guid>
      <link>http://www.phpdeveloper.org/news/18941</link>
      <description><![CDATA[<p>
<i>Nikita Popov</i> has a new post to his blog about a new feature that will be coming in PHP 5.5 and <a href="http://nikic.github.com/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP">how to use them</a>, coroutines and generators, in an example application.
</p>
<blockquote>
Coroutines on the other hand have received relatively little attention. The reason is that coroutines are both a lot more powerful and a lot harder to understand and explain. In this article I'd like to guide you through an implementation of a task scheduler using coroutines, so you can get a feeling for the stuff that they allow you to do. I'll start off with a few introductory sections. If you feel like you already got a good grasp of the basics behind generators and coroutines, then you can jump straight to the "Cooperative multitasking" section.
</blockquote>
<p>
He starts with a look at generators, a piece of functionality that will allow PHP to, for example, more easily create iterators "on the fly." He then moves on to coroutines, added functions that you have two-way communication with generators instead of just pulling data from them. With the basics out of the way, he gets into the "cooperative multitasking" and a sample socket-based server he implements using some of the concepts. 
</p>]]></description>
      <pubDate>Mon, 24 Dec 2012 09:46:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: Atlanta PHP December 2012 Meeting - Multi-Tasking in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18738</guid>
      <link>http://www.phpdeveloper.org/news/18738</link>
      <description><![CDATA[<p>
The Atlanta PHP User Group has <a href="http://atlantaphp.org/2012/11/december-2012-meeting/">announced their December 2012 meeting</a> happening on the 6th. The presenter this time will be <i>Jonathan Hill</i> covering multi-tasking in PHP.
</p>
<blockquote>
When it comes to multi-tasking and interacting with the operating system, PHP is no lightweight. In this talk we'll explore PHP's little-known POSIX, Process Control, and Semaphore extensions and show you how to introduce a parallel dimension to your applications.
</blockquote>
<p>
A "mini-talk" will also be given by <i>Jason Bouffard</i> about screen scraping with <a href="https://github.com/fabpot/Goutte">Goutte</a>. The meeting is on December 6th at 7pm at the <a href="http://atlantaphp.org/directions/">Strongbox West</a> offices in Atlanta.
</p>]]></description>
      <pubDate>Tue, 13 Nov 2012 11:15:04 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Jacob Santos' Blog: Multitasking in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/6084</guid>
      <link>http://www.phpdeveloper.org/news/6084</link>
      <description><![CDATA[<p>
In his <a href="http://www.santosj.name/php/multitasking-in-php/">latest blog post</a>, <i>Jacob Santos</i> takes a look at a common request PHP developers hit after a while - is it possible to multitask processes/actions in php?
</p>
<blockquote>
<p>
The ability to run two or more commands in parallel is totally sexy, but the Web is a different playing field and it doesn't make complete sense.
</p>
<p>
PHP loses control, once the output is sent and the connection is closed. Multithreading would probably make sense in streaming, but PHP already handles that for you where it makes sense for the function. Furthermore, mulithreading has its purpose in applications that continue to run and not something that closes and cleans up everything after the last command is issued.
</p>
</blockquote>
<p>
He <a href="http://www.santosj.name/php/multitasking-in-php/">continues</a> talking more about what multitasking is, a more real life example, the goods, the bads, and some of the issues that can come along with it. Finally, he suggests a feature to be added to the core of PHP - an "internal multitasking mechanism" to help aid these kinds of processes.
</p>]]></description>
      <pubDate>Sat, 19 Aug 2006 15:23:43 -0500</pubDate>
    </item>
  </channel>
</rss>
