<?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>Thu, 23 May 2013 13:33:12 -0500</pubDate>
    <ttl>30</ttl>
    <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[Lorna Mitchell's Blog: We Don't Know Deployment: A 4-Step Remedy]]></title>
      <guid>http://www.phpdeveloper.org/news/17834</guid>
      <link>http://www.phpdeveloper.org/news/17834</link>
      <description><![CDATA[<p>
In a new post to her blog <i>Lorna Mitchell</i> has <a href="http://www.lornajane.net/posts/2012/we-dont-know-deployment-a-4-step-remedy">written a beginner's guide to deployment</a> for web based applications in response to a recent email from <a href="http://www.lornajane.net/posts/lj_publications/php-master-write-cutting-edge-code">a reader</a>.
</p>
<blockquote>
I [replied to the email] with some suggestions (and my consulting rate) attached, and we had a little email exchange about some improvements that could fit in with the existing setup, both of the hardware and of the team skills. Then I started to think ... he probably isn't the only person who is wondering if there's a better way. So here's my advice, now with pictures!
</blockquote>
<p>
She's broken it up into a few different sections to make it a bit more easily digestible:
</p>
<ul>
<lI>A "starting point" where there's a development, staging and live environments
<li>Using source control to manage code
<li>Branching for effective coordination
<li>Integration of automated deployment
</ul>
<p>
She also mentions other "bonus points" like making a build server, documentation generation and Javascript/CSS minification.
</p>]]></description>
      <pubDate>Wed, 18 Apr 2012 11:20:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Court Ewing's Blog: Follow-up: How PHP is Broken and How It Can Be Fixed]]></title>
      <guid>http://www.phpdeveloper.org/news/17129</guid>
      <link>http://www.phpdeveloper.org/news/17129</link>
      <description><![CDATA[<p>
In a follow up to his <a href="http://phpdeveloper.org/news/16801">previous post</a> about how PHP is broken (and what can be done to fix it), <i>Court Ewing</i> has <a href="http://epixa.com/2011/11/follow-up-how-php-is-broken-and-how-it-can-be-fixed">this new post</a> with a few suggestions on how PHP development could be better, but admits that PHP itself is not broken.
</p>
<blockquote>
It is no secret that the PHP development process has never been a shining example of project organization or quality assurance. Until recently, some of the most important aspects of any project's development cycle were either entirely lacking or were ill-defined. Worse, there was little in the form of systemic quality assurance. Fortunately, the core devs did not ignore these issues, and they've been pushing really hard to improve on these areas over the past few years.
</blockquote>
<p>
He points out two things that he sees as things that could be improved in the overall process of developing the language - noting that failing automated tests are ineffective and that communication is a key factor in the trust developers have in PHP.
</p>
<blockquote>
The core PHP developers have long been a key component of [the amazing things the language can do], and none of progress that modern PHP applications have made would be possible without their ongoing efforts. As a result of those efforts, PHP is a stable, secure, and beautifully-practical language that is both easy for novices to wrap their heads around and experts to build the most-used web applications the world has ever seen.
</blockquote>]]></description>
      <pubDate>Tue, 15 Nov 2011 10:18:45 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Automated code reviews for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16478</guid>
      <link>http://www.phpdeveloper.org/news/16478</link>
      <description><![CDATA[<p>
On the Web Builder Zone (a part of DZone.com) <i>Giorgio Sironi</i> take a high-level look at some of the tools you can <a href="http://css.dzone.com/articles/automated-code-reviews-php">use for automated code reviews</a> in your projects without you ever having to lift a finger (well, once it's set up, of course).
</p>
<blockquote>
I'm exploring an approach to automated code review: it's not as precise as the human-based one, but it scales better. [...] All in all, automated code reviews, performed with tools instead of with human intellect, can be a starting point to search for the problematic zones of a codebase. Then the human may come in, since they also have to clean up the code: their intervention was already scheduled.
</blockquote>
<p>The tools he mentions (and, in some cases, shows how to install/use) are:</p>
<ul>
<li><a href="http://phpunit.de">PHPUnit</a>
<li><a href="http://phpdepend.org">PHP_Depend</a>
<li>PHP_CodeSniffer
<li><a href="http://phpmd.org">PHP Mess Detector (pmd)</a>
<li>the <a href="http://jenkins-php.org/">Jenkins job template</a>
</ul>]]></description>
      <pubDate>Thu, 16 Jun 2011 10:06:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Web Builder Zone: The different kinds of testing]]></title>
      <guid>http://www.phpdeveloper.org/news/15060</guid>
      <link>http://www.phpdeveloper.org/news/15060</link>
      <description><![CDATA[<p>
On the Web Builder Zone (from <a href="http://dzone.com">DZone</a>) <i>Giorgio Sironi</i> has posted <a href="http://css.dzone.com/articles/different-kinds-testing">a new article</a> that talks about the different kinds of testing you can do on your application - both on the frontend and backend.
</p>
<blockquote>
Automated testing supports your constant effort in design and refactoring, and besides that ensures that your application actually works in a reliable and repeatable way. [...] In this article I'll describe the different categories of testing, as applied to a Zend Framework 1 application, but this classification pertains to every web application based on object-oriented programming. Since this kind of applications is obviously PHP-based, PHPUnit will be the tool of choice along with some of its standard extensions. 
</blockquote>
<p>
He looks at five different types of testing you can do on your application:
</p>
<ul>
<li>Unit testing
<li>Pragmatic unit testing
<li>Functional testing
<li>Integration testing
<li>Acceptance testing
</ul>
<p>
Not all of these can be done with <a href="http://phpunit.de">PHPUnit</a> on the backend, but they (mostly) have automated tools of their own like Selenium for frontend interface testing.
</p>]]></description>
      <pubDate>Wed, 01 Sep 2010 12:09:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Richard Thomas' Blog: PHP and Centos, a step towards automating your server builds]]></title>
      <guid>http://www.phpdeveloper.org/news/14407</guid>
      <link>http://www.phpdeveloper.org/news/14407</link>
      <description><![CDATA[<p>
<i>Richard Thomas</i> has posted a script that could be used to set up a complete PHP-enabled instance of CentOS from a basic install. He's posted about it <a href="http://www.phpjack.com/content/php-and-centos-step-towards-automating-your-server-builds">on his blog</a>.
</p>
<blockquote>
I compile php all the time, I am constantly installing the latest versions on my own servers for various reasons. After doing this the first dozen or so times I started creating little batch files. [...] The other day someone asked something about my setup and I had to pull open the script to remember what I had going on and he asked for a copy and hence I figure others might be interested as well.
</blockquote>
<p>
He's shared out the file <A href="http://mtrack.phpjack.com/lab/browse.php/lab/server_setup/trunk">here</a> and it installs all the usual tools you might need including MySQL support with PHP being the only thing compiled from scratch.
</p>]]></description>
      <pubDate>Mon, 26 Apr 2010 08:33:10 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Brandon Savage's Blog: Build Systems: Relevancy of Automated Builds In A Web World]]></title>
      <guid>http://www.phpdeveloper.org/news/13817</guid>
      <link>http://www.phpdeveloper.org/news/13817</link>
      <description><![CDATA[<p>
In <a href="http://www.brandonsavage.net/build-systems-relevancy-of-automated-builds-in-a-web-world/">this new post</a> from <i>Brandon Savage</i> he looks at automated build tools and how they're more relevant now than ever in your application's lifecycle.
</p>
<blockquote>
Build systems are just as relevant to the web (if not more so) than they are to compiled code. Build systems offer significant advantages to the development of software applications, and it is crucial that developers not take them for granted.
</blockquote>
<p>
He suggests a few reasons to those naysayers out there as to why build processes and tools are pertinent to web development:
</p>
<ul>
<li>Build systems make continuous integration easier.
<li>Build systems ensure that the same process is followed each and every time when making a release.
<li>With a one-step system, errors are reduced.
<li>Creating a build system reenforces the entire development process.
<li>A build system introduces formality to the release process.
</ul>]]></description>
      <pubDate>Mon, 11 Jan 2010 14:03:19 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Raphael Stolt's Blog: Rolling your own Phing task]]></title>
      <guid>http://www.phpdeveloper.org/news/7623</guid>
      <link>http://www.phpdeveloper.org/news/7623</link>
      <description><![CDATA[<p>
Wanting to automate a common task he found himself doing, <i>Raphael Stolt</i> came up with <a href="http://raphaelstolt.blogspot.com/2007/03/rolling-your-own-phing-task.html">his own process</a> and use <a href="http://raphaelstolt.blogspot.com/2007/03/rolling-your-own-phing-task.html">Phing</a> to help.
</p>
<blockquote>
To round off an older article on this blog called "<a href="http://raphaelstolt.blogspot.com/2007/01/use-php-5-reflection-api-to-track.html">Using the PHP 5 reflection API to keep track of unsolved refactorings</a>" I wanted to automate the following task: collect and log some information about developer marked unsolved refactorings for a single class file or more common multiple files of an whole directory. And as I'm getting more and more acquainted with <a href="http://phing.info/trac/">Phing</a> I wanted to craft this custom task by using it's provided extension possibilities.
</blockquote>
<p>
He <a href="http://raphaelstolt.blogspot.com/2007/03/rolling-your-own-phing-task.html">gives examples</a> of what the "unsolvedRefactoring" notation looks, the XML mapping for its definition, and the code that actually makes the mapping work - and makes it easy to pull out the needed information. There's two versions presented, one a normal pull and the other modified slightly to "actually retrieve the metadata of the methods marked as improveable via the @unsolvedRefactoring doclet". And, finally, the integration with Phing comes, showing how to run the files and what the results should look like.
</p>]]></description>
      <pubDate>Fri, 13 Apr 2007 10:22:00 -0500</pubDate>
    </item>
  </channel>
</rss>
