<?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>Wed, 19 Jun 2013 06:34:59 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPClasses.org: 5 Reasons Why the Web Platform War is Over: PHP Won with 75% says Google]]></title>
      <guid>http://www.phpdeveloper.org/news/19617</guid>
      <link>http://www.phpdeveloper.org/news/19617</link>
      <description><![CDATA[<p>
In <a href="http://www.phpclasses.org/blog/post/208-5-Reasons-Why-the-Web-Platform-War-is-Over-PHP-Won-with-75-says-Google.html">this new post</a> to the PHPClasses.org blog <i>Manuel Lemos</i> talks some about the recent introduction of PHP into Google's App Engine offerings.
</p>
<blockquote>
During Google I/O 2013 event a Google manager said PHP runs on 75% of the Web sites. So they decided to finally support PHP as in their AppEngine hosting service. Read this article to understand why this puts an end to years of false claims that PHP was losing market, as well what it means to Web developers using PHP or other languages.
</blockquote>
<p>
He looks at the App Engine PHP offering and looks at whether or not its a good platform to use for hosting your application. He points out some advantages and disadvantages (including no local file system access and no remote resource access). He also includes five reasons why the "web platform war is over" and why PHP has come out victorious:
</p>
<ul>
<li>Google Knows Because They Crawl the Whole Web
<li>Google Does Not Influence Web Developers so much
<li>Wordpress is the Dominant Blog Platform (not Blogger)
<li>Programming Does Not Have to Be Beautiful
<li>PHP Detractors Have the Wrong Focus
</ul>
<p>
He admits, though, that PHP may not be dominant forever - it's not perfect, but there will always be a need for something that does what it can do (and does it well).
</p>
Link: http://www.phpclasses.org/blog/post/208-5-Reasons-Why-the-Web-Platform-War-is-Over-PHP-Won-with-75-says-Google.html]]></description>
      <pubDate>Wed, 22 May 2013 09:06:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sameer Borate: Efficiently Replicating RETS data to MySQL]]></title>
      <guid>http://www.phpdeveloper.org/news/19542</guid>
      <link>http://www.phpdeveloper.org/news/19542</link>
      <description><![CDATA[<p>
<i>Sameer Borate</i> has a new post to his site that shares how he <a href="http://www.codediesel.com/data/efficiently-replicating-rets-data-to-mysql/">converted a RETS database to MySQL</a> with the help of a PHP library, <a href="https://github.com/troydavisson/PHRETS/wiki">PHPRETS</a>.
</p>
<blockquote>
A recent project of mine entailed replicating a <a href="http://www.reso.org/rets">RETS</a> database on a local MySQL database server. The client had a new real-estate mobile search app in development and wanted to have a local copy of the RETS database for search queries instead of a remote RETS server. [...] Replicating RETS data rather than using the live version is slightly complex, however. In order to replicate the RETS data into your own local database, a series of processes are needed in order to make sure the data you have is both updated and in sync with the server. 
</blockquote>
<p>He breaks it down into three main steps with some sample code for each:</p>
<ul>
<li>Grabbing the complete database once
<li>Keeping the data in sync
<li>Ensuring the cron job is executed on regular intervals
</ul>
Link: http://www.codediesel.com/data/efficiently-replicating-rets-data-to-mysql]]></description>
      <pubDate>Fri, 03 May 2013 10:26:33 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Dalisay: Salt, Hash and Store Passwords Securely with Phpass]]></title>
      <guid>http://www.phpdeveloper.org/news/19427</guid>
      <link>http://www.phpdeveloper.org/news/19427</link>
      <description><![CDATA[<p>
On <i>Mike Dalisay</i>'s site there's a recent post showing how to use the <a href="http://www.openwall.com/phpass/">Phpass</a> tool to <a href="http://www.codeofaninja.com/2013/03/php-hash-password.html#.UVziYKUm0sc.dzone">salt, hash and store passowrd data</a> in your application.
</p>
<blockquote>
I think the main reason why we have to hash passwords is to prevent passwords from being stolen or compromised. You see, even if someone steal your database, they will never read your actual or cleartext password. I know that some PHP frameworks or CMS already provide this functionality, but I believe that it is important for us to know how its implementation can be made.
</blockquote>
<p>
His <a href="https://docs.google.com/file/d/0B-AInNrVeucKZGgzWThFdUNhNVk/edit?usp=sharing">sample application</a> stores the user data in a MySQL database and does the salting+hashing at the time of the request. It uses a hard-coded salt and a value of 8 for the hashing/stretching.  Screenshots of each page in the example application are also included.
</p>
Link: http://www.codeofaninja.com/2013/03/php-hash-password.html#.UVziYKUm0sc.dzone]]></description>
      <pubDate>Mon, 08 Apr 2013 12:16:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Building a PHP RSS Aggregator]]></title>
      <guid>http://www.phpdeveloper.org/news/19413</guid>
      <link>http://www.phpdeveloper.org/news/19413</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a quick tutorial showing you how to <a href="http://www.phpbuilder.com/articles/php-functions/xml/building-a-php-rss-aggregator.html">build an RSS aggregator</a> that can pull in RSS content and drop it into a MySQL table.
</p>
<blockquote>
RSS stands for Really Simple Syndication. It is a Web format that allows website owners to distribute their latest and frequently updated content in a standardized way. RSS feed is actually an XML document that can be easily read by using RSS reader software or built-in functions in programming languages, such as PHP or Java. In this article, the focus will be on building a RSS aggregator in PHP.
</blockquote>
<p>
They introduce the basics of an RSS feed - a specially formatted XML document with values for individual posts (like "title" and "link". They provide the SQL structure for the "article" and "feed" tables and the code to pull out each "feed" record, parse it and drop that into the "article" table for later consumption. They show two different methods for getting the content - one using <a href="http://php.net/file_get_contents">file_get_contents</a> and another using <a href="http://php.net/curl">cURL</a>.
</p>
Link: http://www.phpbuilder.com/articles/php-functions/xml/building-a-php-rss-aggregator.html]]></description>
      <pubDate>Thu, 04 Apr 2013 13:09:13 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Learn Computer: Is LAMP Pack Still Strong?]]></title>
      <guid>http://www.phpdeveloper.org/news/19393</guid>
      <link>http://www.phpdeveloper.org/news/19393</link>
      <description><![CDATA[<p>
On the "Learn Computer" site there's a <a href="http://www.learncomputer.com/is-lamp-pack-still-strong/">recent post</a> that wonders if the web development standard of the LAMP (Linux, Apache, MySQL and PHP) stack is "still strong" and will still stand up with new technologies.
</p>
<blockquote>
This year in tech (like almost every other year) has been filled with buzzwords. Many of them this year, however, are based around big data processing and web content: NoSQL, Hadoop, BigTable - the list goes on. With all the fuss around these new technologies, one might be tempted into thinking that these are the technologies of the future, and that from now on our servers and websites will be built upon, leaving technologies like LAMP in the dust. 
</blockquote>
<p>
They talk about some of the things the LAMP stack <i>doesn't</i> do well like difficulties with scalability on both the web server and database side. There's also mention of the things that it does do well, like getting things up and running quickly and with a solid structure. 
</p>
<blockquote>
That being the case, the LAMP stack is still going very strong, and it's definitely still extremely viable in small and medium-sized deployments; there are no signs of it waning in that regard, and I'd expect it to be a standard deployment for many companies and organizations for quite some time to come.
</blockquote>]]></description>
      <pubDate>Mon, 01 Apr 2013 12:55:09 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jordi Boggiano: Composer: an update on require-dev]]></title>
      <guid>http://www.phpdeveloper.org/news/19266</guid>
      <link>http://www.phpdeveloper.org/news/19266</link>
      <description><![CDATA[<p>
<i>Jordi Boggiano</i> has a new post to his site about a recent update to the Composer tool that can help make <a href="http://seld.be/notes/composer-an-update-on-require-dev">managing development-only dependencies</a> a bit easier.
</p>
<blockquote>
Using require-dev in Composer you can declare the dependencies you need for development/testing. It works in most simple cases, but when the dev dependencies overlap with the regular ones, it can get tricky to handle. In too many cases it also tends to just fail at resolving dependencies with quite strange error messages. Since this was quite unreliable, I set out to rework the whole feature this week-end. The <a href="https://github.com/composer/composer/pull/1644">patch</a> has been merged, and it fixes six open issues which is great.
</blockquote>
<p>
Additionally, to make it easier to work with the development dependencies, they'll by default be installed when you run an "update" in your repository. If you don't want them, you can still use "--no-dev". Also, Composer will manage them in a seperate section from the normal "require" packages. If you're not using Composer to manage your application's dependencies, look over on <a href="http://getcomposer.org">getcomposer.org</a> for more details.
</p>]]></description>
      <pubDate>Mon, 04 Mar 2013 12:38:33 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Avoid the Original MySQL Extension, Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/19235</guid>
      <link>http://www.phpdeveloper.org/news/19235</link>
      <description><![CDATA[<p>
PHPMaster.com has posted the <a href="http://phpmaster.com/avoid-the-original-mysql-extension-2/">second part</a> of their "avoid the original MySQL extension" tutorial series (part one is <a href="http://phpmaster.com/avoid-the-original-mysql-extension-1/">here</a>). In this new part, they share more about another alternative - the PDO extension.
</p>
<blockquote>
The PDO extension supports twelve drivers, enabling it to connect to a variety of relational databases without the developer having to learn a number of different APIs. It does this by abstracting the database interaction calls behind a common interface, enabling the developer to utilize a consistent interface for different databases. This of course gives it a major advantage over both the MySQL and MySQLi extensions who are limited to only one database.
</blockquote>
<p>
Included in the post are examples of some of the basics - connecting, executing queries, getting the results - as well as more compelx things like binding parameters and transaction support. There's also a bit about changing the default behavior of the PDO object through config options. He finishes off the article talking some about some of the issues that could come from using an abstraction layer like this and the need to still write good, compatible SQL depending on the database.
</p>]]></description>
      <pubDate>Mon, 25 Feb 2013 13:40:09 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Avoid the Original MySQL Extension, Part 1]]></title>
      <guid>http://www.phpdeveloper.org/news/19188</guid>
      <link>http://www.phpdeveloper.org/news/19188</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new post, the first in a series, about <a href="http://phpmaster.com/avoid-the-original-mysql-extension-1/">avoiding the original MySQL extension</a> in favor of what <a href="http://php.net/mysqli">mysqli</a> has to offer. The cover some of the basics of the extension and include code showing its use.
</p>
<blockquote>
Experienced developers eschew the original MySQL extension because of its abandoned status in PHP. Nascent web developers, however, may be completely oblivious to its dormant past and dying future. [...] It is therefore the intention of this two-part article to raise awareness among developers who still use the MySQL extension, inform them of its problems, and to help them switch over to an alternative extension.
</blockquote>
<p>
They start with a brief look at the "what's wrong" with the MySQL extension (including its upcoming deprecation). The article then gets into the basics of MySQLi and how to do things like make a connection and run a few queries. There's also a bit about prepared statements and the built-in ability to do "multi-queries" (complete with rollbacks).
</p>]]></description>
      <pubDate>Fri, 15 Feb 2013 11:13:29 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: Lately in PHP, Episode 32 - Zend Optimizer+ Cache in PHP 5.5 & MySQL 5.6]]></title>
      <guid>http://www.phpdeveloper.org/news/19150</guid>
      <link>http://www.phpdeveloper.org/news/19150</link>
      <description><![CDATA[<p>
On PHPClasses.org today they've posted the latest episode of their "Lately in PHP" podcast, <a href="http://www.phpclasses.org/blog/post/200--Zend-Optimizer-Cache-in-PHP-55-and-MySQL-56-Performance-Improvements--Lately-in-PHP-podcast-episode-32.html">Episode #32</a>, "Zend Optimizer+ Cache in PHP 5.5 and MySQL 5.6 Performance Improvements".
</p>
<blockquote>
MySQL 5.6 speed improvements and how it affects PHP applications was one of the main topics discussed by Manuel Lemos and Ernani Joppert on the episode 32 of the Lately in PHP podcast. They also commented on the eventual adoption of the Zend Optimizer+ as the PHP code caching extension that may be shipping with PHP 5.5 as alternative to APC, the implications of this to the PHP community.
</blockquote>
<p>
They also talk some about the switch of OpenSuSE/Fedora Linux to MariaDB MySQL, TDD in the Zurmo PHP Open Source CRM and using HTML5 animations. You can listen to this latest episode either through the <a href="http://www.phpclasses.org/blog/post/200--Zend-Optimizer-Cache-in-PHP-55-and-MySQL-56-Performance-Improvements--Lately-in-PHP-podcast-episode-32.html">in-page player</a>, by <a href="http://www.phpclasses.org/blog/post/200/file/162/name/Lately-In-PHP-32.mp3">downloading the mp3 directly</a> or <a href="http://www.youtube.com/watch?feature=player_embedded&v=lD6vEiUtpPo#!">watch the video</a> of the recording on YouTbue.
</p>]]></description>
      <pubDate>Thu, 07 Feb 2013 12:56:55 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: Lately in PHP, Episode 31 - The Urge to Kill Older PHP Versions]]></title>
      <guid>http://www.phpdeveloper.org/news/19033</guid>
      <link>http://www.phpdeveloper.org/news/19033</link>
      <description><![CDATA[<p>
PHPClasses.org has <a href="http://www.phpclasses.org/blog/post/198-The-Urge-to-Kill-Older-PHP-Versions--Lately-in-PHP-podcast-episode-31.html">released their latest episode</a> of their "Lately in PHP" podcast series. This episode (#31) talks some about some of the changes happening in versions in PHP in the upcoming months.
</p>
<blockquote>
As PHP 5.5 is getting ready to be released in the next months, the end of line for PHP 5.3 is being planned, while the original MySQL extension is being deprecated in PHP 5.5 to be killed in a later version.
</blockquote>
<p>
You can listen to this latest episode either through the <a href="http://www.phpclasses.org/blog/post/198-The-Urge-to-Kill-Older-PHP-Versions--Lately-in-PHP-podcast-episode-31.html">in-page player</a>, by <a href="http://www.phpclasses.org/blog/post/198/file/158/name/Lately-In-PHP-31.mp3">downloading the mp3</a> or you can <a href="http://youtu.be/0DNpcozTbUk">watch the video</a> of the recorded Google Hangout of the taping.
</p>]]></description>
      <pubDate>Mon, 14 Jan 2013 10:58:16 -0600</pubDate>
    </item>
  </channel>
</rss>
