<?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 10:09:44 -0500</pubDate>
    <ttl>30</ttl>
    <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[Automated backups to Google Drive with PHP API]]></title>
      <guid>http://www.phpdeveloper.org/news/19466</guid>
      <link>http://www.phpdeveloper.org/news/19466</link>
      <description><![CDATA[<p>
On his site <i>Lukasz Kujawa</i> has posted a new tutorial showing you how to <a href="http://systemsarchitect.net/automated-backups-to-google-drive-with-php-api/">perform automated backups to Google Drive</a> of files through their API (using <a href="https://github.com/lukaszkujawa/cp2google">his own library</a>).
</p>
<blockquote>
Where do you keep backups? I guess that depends on what do you backup. You might have a very clever answer for a business critical data but what about less important content? The best example would be a private blog. It will hurt if you lose your data but the odds are you're not willing to pay for any reliable storage. [...] There is one reliable storage, which is 100% free and almost everybody have access to it. Yes, I'm talking about Google Drive.
</blockquote>
<p>
He walks you through the process of setting up your Google Drive account API access and where to find the data you'll need to make the connection. He then links over to <a href="https://github.com/lukaszkujawa/cp2google">his project</a> that makes the backup a simple few lines of code (mostly configuration) of a backup path of your choice out to the remote Google Drive account.
</p>
Link: http://systemsarchitect.net/automated-backups-to-google-drive-with-php-api]]></description>
      <pubDate>Tue, 16 Apr 2013 10:57:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP.net: PHP 5.4.14 and PHP 5.3.24 released!]]></title>
      <guid>http://www.phpdeveloper.org/news/19445</guid>
      <link>http://www.phpdeveloper.org/news/19445</link>
      <description><![CDATA[<p>
As is mentioned on the main PHP.net site today <a href="http://php.net/index.php#id2013-04-11-1">PHP 5.4.14 and 5.3.24 have been released</a>:
</p>
<blockquote>
The PHP development team announces the immediate availability of PHP 5.4.14 and PHP 5.3.24. These releases fix about 10 bugs aswell as upgrading the bundled PCRE library. All users of PHP are encouraged to upgrade to PHP 5.4.14.
</blockquote>
<p>
Users are encouraged to update to this latest release. You can find the latest version either on the <a href="http://php.net/downloads.php">downloads page</a> (source) or <a href="http://windows.php.net/download/">the Windows site</a> (binaries). If you're curious what all changed in this release, check out <a href="http://php.net/ChangeLog-5.php">the Changelog</a>.
</p>
Link: http://php.net/archive/2013.php#id2013-04-11-1]]></description>
      <pubDate>Thu, 11 Apr 2013 09:07:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Aspect-Oriented Programming in PHP with Go!]]></title>
      <guid>http://www.phpdeveloper.org/news/19439</guid>
      <link>http://www.phpdeveloper.org/news/19439</link>
      <description><![CDATA[<p>
In <a href="http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php-with-go/">this new tutorial</a> on NetTuts.com today they introduce you to <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">aspect-oriented programming</a> (AOP) in PHP through the use of the <a href="https://github.com/lisachenko/go-aop-php">Go! PHP library</a>.
</p>
<blockquote>
The concept of Aspect-Oriented Programming (AOP) is fairly new to PHP. There's currently no official AOP support in PHP, but there are some extensions and libraries which implement this feature. In this lesson, we'll use the <a  href="https://github.com/lisachenko/go-aop-php">Go! PHP library</a> to learn AOP in PHP, and review when it can be helpful.
</blockquote>
<p>
They start with a brief history of AOP in general and a basic vocabulary of some of the common terms like "point-cut", "aspect" and "cross-concern." They briefly look at some of the other PHP tools for AOP, but then help you get Go! up and running. Sample code is included showing how to integrate it into your project and, more practically, create a logging system that can be used as an aspect.
</p>
Link: http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php-with-go]]></description>
      <pubDate>Wed, 10 Apr 2013 10:56:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Andrew Podner: PHP 5.5 Preview: New Password Hashing API]]></title>
      <guid>http://www.phpdeveloper.org/news/19360</guid>
      <link>http://www.phpdeveloper.org/news/19360</link>
      <description><![CDATA[<p>
<i>Andrew Podner</i> has posted about the <a href="http://unassumingphp.com/php-5-5-preview-new-password-hashing-api/">password hashing functionality</a> that's coming with PHP 5.5 - how it will work and some of the benefits of its use.
</p>
<blockquote>
Recently PHP 5.5 was released into beta, which puts us one step closer to another release of PHP.  This week, I thought I would spend a little time explaining a new feature that will be implemented in 5.5 that will hopefully make dealing with passwords easier for developers to grasp and properly implement.  I cannot tell you the number of apps, even ones written within the last year or so, that I open up only to find either an md5 hash, or worse, clear text password storage.  I keep telling myself that eventually this will come to an end, and people will stop taking the easy way out.  Maybe PHP 5.5 will have made it so easy that there is simply no further excuse not to implement solid password hashing.
</blockquote>
<p>
He includes an example of the four new functions that will come with the hashing functionality: password_get_info, password_hash, password_needs_rehash and password_verify. He includes the parameters that should be included in each call and the details from the call to get the hash's info. If you're not going to be able to move up to PHP 5.5 when it's released, you might consider looking into <a href="https://github.com/ircmaxell/password_compat">this compatibility library</a> to have a similar interface and functionality (for 5.3.7 or greater).
</p>]]></description>
      <pubDate>Mon, 25 Mar 2013 12:32:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[QaFoo.com: Mocking with Phake]]></title>
      <guid>http://www.phpdeveloper.org/news/19308</guid>
      <link>http://www.phpdeveloper.org/news/19308</link>
      <description><![CDATA[<p>
On the QaFoo blog today there's a new tutorial posted showing you how to <a href="http://qafoo.com/blog/037_phake.html">make unit test mocks with Phake</a>, a <a href="http://phake.digitalsandwich.com/">testing tool</a> that works a bit differently that other options (PHPUnit's own mocking and <a href="https://github.com/padraic/mockery">Mockery</a>).
</p>
<blockquote>
The use of Mock and Stub Objects is an important skill to learn when using Test Driven Development (TDD). Mock objects allow you to replace dependencies of an object with lookalikes, much like crash test dummies are used during automobile safety tests so humans aren't harmed. [...] Using Mocks in PHPUnit tests means using the built-in <a href="https://github.com/sebastianbergmann/phpunit-mock-objects">MockObjects library</a> for quite some years. In the last years two contenders emerged that can be used as optional dependencies in PHPUnit. [...] This blog post introduces Phake, because it works quite differently than both PHPUnit Mock Objects and Mockery.
</blockquote>
<p>
They include a code example of how to create mocks with Phake, showing it's different approach to defining the mocked methods. They explain each part of the code, detailing the use of the "when", "thenReturn" and "verify" methods. You can find out more about Phake and see other examples in <a href="http://phake.digitalsandwich.com/docs/html/">the project's documentation</a>.
</p>]]></description>
      <pubDate>Wed, 13 Mar 2013 12:53:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Integrating Open Authentication using Opauth]]></title>
      <guid>http://www.phpdeveloper.org/news/19296</guid>
      <link>http://www.phpdeveloper.org/news/19296</link>
      <description><![CDATA[<p>
On PHPMaster.com there's a new tutorial showing you how to <a href="http://phpmaster.com/integrating-open-authentication-using-opauth/">implement OAuth authentication</a> in your application using the <a href="http://opauth.org/">Opauth</a> Php library. This library lets you connect to any of a number of OAuth service providers and authenticate.
</p>
<blockquote>
Open Authentication has evolved as a standard for third-party authentication in recent years and allows us to securely authenticate our application's users through a standard interface. Twitter and Facebook has been the standouts among dozens of authentication service providers. [...] In this article we'll explore how we can effectively use Opauth to standardize our authentication strategies. I'll be using CodeIgniter here, but even if you're not familiar with CodeIgniter, I suggest you continue reading since it will be similar for other frameworks as well. Once you understand the necessary details for integration, adapting to any framework is super simple.
</blockquote>
<p>
He talks some about the Opauth library and shows <a href="http://cdn.phpmaster.com/files/2013/03/opauth-01.png">the full authentication flow</a> that your script will follow when using it. Code is included showing how to include and integrate the <a href="https://github.com/opauth/opauth">Opauth</a> library including setup and configuration of the object and the controller/view code to implement the login form. 
</p>]]></description>
      <pubDate>Mon, 11 Mar 2013 09:07:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Vance Lucas: Valitron: The Simple Validation Library That Doesn't Suck]]></title>
      <guid>http://www.phpdeveloper.org/news/19272</guid>
      <link>http://www.phpdeveloper.org/news/19272</link>
      <description><![CDATA[<p>
<i>Vance Lucas</i> has created a "<a href="http://www.vancelucas.com/blog/valitron-the-simple-validation-library-that-doesnt-suck/">validation library that dosen't suck</a>" and posted about it to his site - his <a href="https://github.com/vlucas/valitron">Valitron</a> library.
</p>
<blockquote>
<a href="https://github.com/vlucas/valitron">Valitron</a> is a simple, minimal and elegant stand-alone PHP validation library with NO dependencies. Valitron uses simple, straightforward validation methods with a focus on readable and concise syntax.
</blockquote>
<p>
He created the library because of frustration with other tools that had (sometimes major) dependencies on other packages. All he wanted was something lightweight and easy to use that was flexible about how it handled its validation rules. <a href="https://github.com/vlucas/valitron">Valitron</a> lets you apply a validation (like "required") against multiple fields in the provided data and includes checks for things like length, valid IP, active URL, alpha-numeric, date format and regular expression match. You can also add custom validation rules via a callback/closure.
</p>]]></description>
      <pubDate>Tue, 05 Mar 2013 11:43:24 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Simon Holywell: Idiorm and Paris 1.3.0 released - the minimalist ORM and fluent query builder for PH]]></title>
      <guid>http://www.phpdeveloper.org/news/19245</guid>
      <link>http://www.phpdeveloper.org/news/19245</link>
      <description><![CDATA[<p>
<i>Simon Holywell</i> has a new post to his site about a project that aims to be a minimalist ORM library and make it easier to built queries on the fly for your applications (and is installable via Composer) - the <a href="http://simonholywell.com/post/2013/01/idiorm-and-paris-the-minimalist-orm.html">Idorm + Paris combination</a>.
</p>
<blockquote>
Idiorm is a PHP ORM that eschews complexity and deliberately remains lightweight with support for PHP5.2+. [...] However, having said this, Idiorm is very powerful and it makes most of the queries PHP applications require pain free. Some of these features include fluent query building, multiple connection support and result sets for easy record manipulation. Paris sits on top of Idiorm to provide a simplified active record implementation based upon the same minimalist philosophy. 
</blockquote>
<p>
He includes examples in the post of both queries with Idiorm - simple things like creating and finding records - and using Paris to make models out of PHP objects. He also talks some about the current state of the project, recent advancements and some of the things they're looking to do with it in the future (including dropping PHP 5.2 support and use late static binding).
</p>]]></description>
      <pubDate>Wed, 27 Feb 2013 10:33:33 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Fabien Potencier: Don't use PHP libraries with known security issues]]></title>
      <guid>http://www.phpdeveloper.org/news/19208</guid>
      <link>http://www.phpdeveloper.org/news/19208</link>
      <description><![CDATA[<p>
In <a href="http://fabien.potencier.org/article/67/don-t-use-php-libraries-with-known-security-issues">his latest post</a> <i>Fabien Potencier</i> introduces a new effort to help PHP developers using Composer for their dependencies find potential security issues automatically - the <a href="https://security.sensiolabs.org/">security.sensiolabs.com site</a>.
</p>
<blockquote>
I want to provide a simple and efficient way to check for vulnerabilities in a project and I want to serve more than just the Symfony community. That's why I'm really proud to announce a new SensioLabs initiative: a simple way to check if your project depends on third-party libraries with known security issues. The website explains how it works in details (<a href="https://security.sensiolabs.org/">https://security.sensiolabs.org/</a>), but basically, this initiative gives you several ways to check for security issues in your project dependencies based on the information contained in you composer.lock file (you are using Composer to manage your dependencies, right?)
</blockquote>
<p>
Composer users can upload their "composer.lock" file and the system will evaluate it against the vulnerabilities it knows about and return any issues it might find. The current database is hosted <a href="https://github.com/sensiolabs/security-advisories">on github</a> and can be added to by anyone using a pull request. Additionally, you can install the <a href="https://github.com/sensiolabs/security-checker">command-line version</a> if you want to do checks locally.
</p>]]></description>
      <pubDate>Wed, 20 Feb 2013 10:54:20 -0600</pubDate>
    </item>
  </channel>
</rss>
