<?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>Sun, 12 Feb 2012 18:19:57 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Artur Ejsmont's Blog: How to build mongodb pecl extension in 32bit for PHP 5.2 on OSX Snow Leaopard]]></title>
      <guid>http://www.phpdeveloper.org/news/17494</guid>
      <link>http://www.phpdeveloper.org/news/17494</link>
      <description><![CDATA[<p>
<i>Artur Ejsmont</i> has <a href="http://artur.ejsmont.org/blog/content/how-to-build-mongodb-pecl-extension-in-32bit-for-php-52-on-macosx-snow-leaopard">a recent post</a> to his blog showing how to get a MongoDB PECL extension to compile in a 32bit OSX environment (Snow Leopard).
</p>
<blockquote>
Here is a quick step by step guide on how to get mongodb and PHP5.2 mongo pecl extension going on your MacOSX in 32bit mode! NOTE: 32 bit mongodb binaries have 2GB address space limit so you wont be able to process too much on your laptop. You will still be able to code and connect to remote instances just fine.
</blockquote>
<p>
His process includes five steps - well, eight if you count the optional "install MongoDB" ones too - complete with the commands you'll need to get things compiled, ready for copy and paste. You can find the MongoDB PECL package <a href="http://pecl.php.net/package/mongo">here</a>.
</p>]]></description>
      <pubDate>Fri, 03 Feb 2012 10:35:11 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Koopmanshcap's Blog: Installing the Geoip PECL package for Zend Server on OSX]]></title>
      <guid>http://www.phpdeveloper.org/news/17385</guid>
      <link>http://www.phpdeveloper.org/news/17385</link>
      <description><![CDATA[<p>
In <a href="http://www.leftontheweb.com/message/Installing_the_Geoip_PECL_package_for_Zend_Server_on_OSX">this recent post</a> to his blog <i>Stefan Koopmanschap</i> shares some of the troubles (and a solution) when he was dealing with getting the Geoip PECL extension installed on his Zend Server setup in OSX.
</p>
<blockquote>
Today I needed to get a client application up and running on my local system. This application uses the Geoip PECL package, so I needed to get this up and running. This turned out to be slightly more difficult than just a PECL install, as you're missing some libraries by default, so here is my log of things to do to get it up and running.
</blockquote>
<p>
He gives the complete list of steps his followed including <a href="http://re2c.org/">downloading the source</a> and his way around this "System could not load this extension" issue. The trick was to recompile the source with the correct architecture. By default his extension was built with i386 instead of 64-bit but updating some of the CFLAGS settings (and a few other environment variables) got things compiling correctly. 
</p>]]></description>
      <pubDate>Thu, 12 Jan 2012 11:09:56 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Robert Basic's Blog: Creating a chat bot with PHP and Dbus]]></title>
      <guid>http://www.phpdeveloper.org/news/17364</guid>
      <link>http://www.phpdeveloper.org/news/17364</link>
      <description><![CDATA[<p>
<i>Robert Basic</i> has continued his series looking at using Dbus in PHP with <a href="http://robertbasic.com/blog/creating-a-chat-bot-with-php-and-dbus/">this latest post</a> to his blog - using the foundation he's <a href="http://robertbasic.com/blog/communicating-with-pidgin-from-php-via-d-bus/">created</a> <a href="http://robertbasic.com/blog/listening-to-dbus-signals-with-php/">before</a> to make a chat bot that will listen and respond to commands on a Jabber network.
</p>
<blockquote>
Now that we know how to <a href="http://robertbasic.com/blog/communicating-with-pidgin-from-php-via-d-bus/">use DBus to communicate with Pidgin from PHP</a> and how to <a href="http://robertbasic.com/blog/listening-to-dbus-signals-with-php/">listen to DBus signals</a>, it's time to put it all together by creating a simple chat bot! Nothing fancy, just a simple script that runs somewhere on some server and, by using a Pidgin account, can respond to some basic queries we send it.
</blockquote>
<p>
His new code listens for an incoming message on the "PurpleInterface", grabs the name of the sender and calls a "PurpleConvImSend" method with the conversation object and the message to send. You can find the complete source for the project <a href="https://github.com/robertbasic/blog-examples/blob/master/dbus/chat.php">on his github account</a>.
</p>]]></description>
      <pubDate>Mon, 09 Jan 2012 11:10:52 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Robert Basic's Blog: Communicating with Pidgin from PHP via D-Bus]]></title>
      <guid>http://www.phpdeveloper.org/news/17275</guid>
      <link>http://www.phpdeveloper.org/news/17275</link>
      <description><![CDATA[<p>
<i>Robert Basic</i> has put together a new tutorial on his blog showing how he <a href="http://robertbasic.com/blog/communicating-with-pidgin-from-php-via-d-bus/">connected PHP and Pidgin</a> (the popular chat client) with the help of the <a href="http://pecl.php.net/package/DBus">DBus extension</a>.
</p>
<blockquote>
Earlier this week I got an idea of trying to communicate with <a href="http://pidgin.im/">Pidgin</a>, a chat client, via the terminal. [...] Surely I wasn't the first one to come up with this idea and after a bit of a googling found out that Pidgin's libpurple has a nice API for that, <a href="http://developer.pidgin.im/wiki/DbusHowto">exposed via D-Bus</a>. I first planned to write some scripts for this in Python or C, but when I finally sat down over the weekend to hack on this, realized there is a <a href="http://pecl.php.net/package/DBus">PHP D-Bus extension</a>, thanks to <a href="http://derickrethans.nl/">Derick Rethans</a>! 
</blockquote>
<p>
He goes through the whole process you'll need to get it up and working on your system - installing the extension via PECL, creating a DBus proxy to the Pigdin interface and getting a list of the currently connected users. You can find the first versions of this code <a href="https://github.com/robertbasic/blog-examples/tree/master/dbus">in his account on github</a>.
</p>]]></description>
      <pubDate>Mon, 19 Dec 2011 09:10:23 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Chance Garcia's Blog: MAMP PRO, PECL, SSH2, and OSX CLI (AKA acronym madness)]]></title>
      <guid>http://www.phpdeveloper.org/news/17107</guid>
      <link>http://www.phpdeveloper.org/news/17107</link>
      <description><![CDATA[<p>
<i>Chance Garcia</i> has a recent post to his blog showing how he <a href="http://phpprotip.com/2011/11/mamp-pro-pecl-ssh2-and-osx-cli-aka-acronym-madness/">fixed an issue with his MAMP install</a> involving development of a <a href="https://github.com/chancegarcia/CG/blob/github/Ssh.php">SSH wrapper</a> he developed and some testing out of PHPStorm and PHPUnit.
</p>
<blockquote>
One thing I can say is that, even though I use a convenient app like MAMP PRO to set up my local development environment, I'm glad my sysadmin-fu is up to snuff enough to fly without the conveniences because after this ordeal, I feel like I might as well have made my MAMP stack from scratch with all the hoops I jumped tonight.
</blockquote>
<p>
He shares a few of the things he discovered along the way like: the location of MAMP's "pecl" command, an error caused by a bad pear.conf file, doing custom compiles of PHP and libssh as a fallback and getting the extension to work in the CLI PHP version too.
</p>]]></description>
      <pubDate>Wed, 09 Nov 2011 11:37:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Ulf Wendel's Blog: PECL/mysqlnd_ms compared to a classic]]></title>
      <guid>http://www.phpdeveloper.org/news/16918</guid>
      <link>http://www.phpdeveloper.org/news/16918</link>
      <description><![CDATA[<p>
<i>Ulf Wendel</i> has a new post that <a href="http://blog.ulf-wendel.de/?p=318">compares the performance</a> of a classic method for using the mysqlnd plugin in MySQL replication to <a href=http://de2.php.net/mysqlnd_ms">mysqlnd_ms</a>, the replication and load balancing plugin for the mysqlnd driver (that works with the mysql and mysqli functionality and is, as of <a href="http://phpdeveloper.org/news/16913">this beta</a> of PHP, the default driver for MySQL connections).
</p>
<blockquote>
Recently I was asked if <a href="http://de2.php.net/mysqlnd_ms">PECL/mysqlnd_ms</a> should be used to add MySQL replication support to a yet to be developed PHP application. The <a href="http://blog.ulf-wendel.de/php.net/mysqlnd">mysqlnd</a> plugin, which supports all PHP MySQL extensions (PDO, mysqli, mysql), stood up against a classical, simple, proven and fast approach: one connection for reads, one connection for writes. Let's compare. This is a bit of an unfair challenge, because PECL/mysqlnd_ms was designed as a drop-in for existing applications, not optimized for those starting from scratch, *yell*... The plugin stands up quite well, anyway!
</blockquote>
<p>
He starts with a look at the "classical pattern" of using a factory or singleton to make a database object instance that gives back different connections for reads versus writes (slave vs master). The mysqlnd_ms plugin allows you to define configuration settings to tell the queries to automatically go to certain places for different actions. For example, you could use "master_on_write" to tell it to use a master node if you're doing an INSERT or UPDATE versus a SELECT. He also shows a more complex example using a SQL hint and one issue that might come from the "human element" - not paying attention to database character sets.
</p>]]></description>
      <pubDate>Wed, 28 Sep 2011 08:43:57 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[C. Sadeesh Kumar's Blog: Smart File Type Detection Using PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16785</guid>
      <link>http://www.phpdeveloper.org/news/16785</link>
      <description><![CDATA[<p>
In a new post today <i>C. Sadeesh Kumar</i> has a quick tip to help your script <a href="http://cakephp-php.blogspot.com/2011/08/smart-file-type-detection-using-php.html">detect file types</a> without having to rely on the extension to be correct.
</p>
<blockquote>
In most web applications today, there is a need to allow users to upload images, audio and video files. Sometimes, we also need to restrict certain types of files from being uploaded - an executable file being an obvious example. Security aside, one might also want to prevent users from misusing the upload facility, e.g. uploading copyrighted music files illegally and using the service to promote piracy! In this article, we'll look into a few ways in which we can achieve this.
</blockquote>
<p>
The trick to his example is in using the <a href="http://pecl.php.net/package/Fileinfo">Fileinfo</a> PECL extension. With the help of this extension you can look inside the file and pick out the "magic bytes" (the first few bytes of a file) and see <a href="http://www.garykessler.net/library/file_sigs.html">what MIME type</a> the file really is. He includes a simple example of using the extension on a file and a file upload script that checks the type and handles the file accordingly.
</p>]]></description>
      <pubDate>Mon, 29 Aug 2011 12:07:53 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Bertrand Mansion's Blog: PHP with Itnl and Gettext on OSX Lion]]></title>
      <guid>http://www.phpdeveloper.org/news/16694</guid>
      <link>http://www.phpdeveloper.org/news/16694</link>
      <description><![CDATA[<p>
<i>Bertrand Mansion</i> has a recent post to his blog looking at repairing missing functionality in the latest OS X update (Lion) with <a href="http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/">the intl extension and gettext</a> (not installed by default).
</p>
<blockquote>
Mac OSX Lion ships with PHP 5.3.6. [...] These are all very good solutions, but since I prefer to travel light and the version in Lion already comes with a lot of useful extensions, I preferred to go with it.
</blockquote>
<p>
He shows how to update the default Lion PHP install to include some of the things he needed for his development including:
</p>
<ul>
<li>setting up the php.ini file
<li>installing PEAR/PECL
<li>installing the <a href="http://www.php.net/manual/fr/book.intl.php">intl extension</a>
<li>and a hack to get <a href="http://ftp.gnu.org/gnu/gettext/">gettext</a> working (renaming a base function)
</ul>]]></description>
      <pubDate>Tue, 09 Aug 2011 11:40:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Bradley Holt's Blog: Exploring RabbitMQ and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16616</guid>
      <link>http://www.phpdeveloper.org/news/16616</link>
      <description><![CDATA[<p>
In a new post <i>Bradley Holt</i> looks at some of his exploration into the <a href="http://bradley-holt.com/2011/07/exploring-rabbitmq-and-php/">combination of RabbitMQ and PHP</a> as a possible platform for messaging between process (or applications).
</p>
<blockquote>
I'm exploring the possibility of using <a href="http://www.rabbitmq.com/">RabbitMQ</a> for an upcoming project. RabbitMQ is a free/open source message broker platform. It uses the open <a href="http://www.amqp.org/">Advanced Message Queuing Protocol</a> (AMQP) standard and is written in <a href="http://www.erlang.org/">Erlang using the Open Telecom Platform</a> (OTP). It promises a high level of availability, throughput, scalability, and portability. Since it is built using open standards, it is interoperable with other messaging systems and can be accessed from any platform.
</blockquote>
<p>
He goes through the full process - installing RabbitMQ via MacPorts, grabbing the latest copy of the <a href="http://hg.rabbitmq.com/rabbitmq-c/">librabbitmq library</a> and installing it and finally installing the <a href="http://www.php.net/manual/en/book.amqp.php">AMQP extension</a> for PHP so they can communicate. He includes some simple code that connects to the queue and sends a "hello world" message out to the connection bound to "routeA".
</p>]]></description>
      <pubDate>Thu, 21 Jul 2011 09:13:17 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Till Klampaeckel's Blog: A roundhouse kick, or the state of PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16186</guid>
      <link>http://www.phpdeveloper.org/news/16186</link>
      <description><![CDATA[<p>
Inspired by some of the recent discussions in the PHP community about the future of the language and the software that uses it, <i>Till Klampaeckel</i> has posted some of <a href="http://till.klampaeckel.de/blog/archives/150-A-roundhouse-kick,-or-the-state-of-PHP.html">his own thoughts</a> on the matter.
</p>
<blockquote>
Last week the usual round of PEAR-bashing on Twitter took place, then this morning Marco Tabini asked if PHP (core) was running out of scratches to itch. He also suggests he got this idea from Cal Evan's blog post about Drupal forking PHP.
</blockquote>
<p>
<i>Till</i> talks about a few different points others have made in their comments and tries to clear a few things up - the state of PECL, Drupal and PHP (and forking), PEAR and how some of this infighting might be doing more harm than good for the community.
</p>]]></description>
      <pubDate>Wed, 13 Apr 2011 08:23:03 -0500</pubDate>
    </item>
  </channel>
</rss>

