<?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 08:23:21 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Bob Majdak: On SQL in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19593</guid>
      <link>http://www.phpdeveloper.org/news/19593</link>
      <description><![CDATA[<p>
In a new post to his site <i>Bob Majdak</i> looks at <a href="http://catch404.net/2013/05/on-sql-in-php/">using SQL in PHP</a> and some of the challenges he's come across (some of them with his own tools). He talks about things line inline SQL, loading SQL by unique key or creating a "build object".
</p>
<blockquote>
There is no right or wrong way, but no matter what there is no *pretty* way to do SQL inside of a PHP application. I have been having a personal debate with myself all week about how to make SQL statements nicer in an application without going to a huge DBAL package like Doctrine.
</blockquote>
<p>
He looks at each idea and provides some of the pros and cons about each of them, noting that he hasn't quite decided on which is the best method. Some sample code is included to help clarify the points, showing the "find by unique key" version and how a more complex query might be created with the "builder object."
</p>
Link: http://catch404.net/2013/05/on-sql-in-php]]></description>
      <pubDate>Thu, 16 May 2013 10:11:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Maven and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19569</guid>
      <link>http://www.phpdeveloper.org/news/19569</link>
      <description><![CDATA[<p>
PHPMaster.com has a new tutorial posted that introduces you to a build tool that's more common in the Java world but can <a href="http://phpmaster.com/maven-and-php/">easily support PHP projects</a>, Apache's Maven.
</p>
<blockquote>
Apache Maven is a build automation tool with the purpose of building, reporting, and creating documentation of projects. It builds projects using a Project Object Model (POM) and a set of plugins shared by all projects using Maven, thus providing a uniform build system. Once you familiarize yourself with how one Maven project builds, you automatically know how all Maven projects build. [...] Through this article you will gain familiarity with Maven for PHP, and how to install and use the PHP-Maven plugin from the command line and in Eclipse.
</blockquote>
<p>
The tutorial walks you first through the basic install of Maven and get you started with an example "settings.xml" file helping to set up the PHP-Maven plugin. They help you create your first project using the <a href="http://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html">Archetype</a> plugin and its related "pom.xml" file. The project already has a defined structure (similar to what you might see in a Composer-loadable PHP repo on Github) for the source of your app and the tests. They show you how to hook in PHPUnit and phpDocumentor for testing/dcumentation builds and, finally, how to integrate it all into Eclipse to allow for easier, in-IDE interactions.
</p>
Link: http://phpmaster.com/maven-and-php]]></description>
      <pubDate>Thu, 09 May 2013 12:42:37 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Luis Atencio: Notes on Continuous Delivery - Continuous Integration]]></title>
      <guid>http://www.phpdeveloper.org/news/19367</guid>
      <link>http://www.phpdeveloper.org/news/19367</link>
      <description><![CDATA[<p>
<i>Luis Atencio</i> has posted the <a href="http://www.luisatencio.net/2013/03/notes-on-continuous-delivery-continuous.html">third part of his continuous delivery series</a> (parts <a href="http://phpdeveloper.org/news/19144">one</a> and <a href="http://phpdeveloper.org/news/19240">two</a>), this time with a focus on continuous integration as a part of the process.
</p>
<blockquote>
This is a continuation from my previous post and overall the series on Continuous Delivery. If you haven't been following, that's okay, every topic is self-contained, so read along. The contents of these posts are taken from the book titled "Continuous Delivery" by Humble and Farley (resources below) overlaid with my own professional experience. In this article, we talk a bit more about Continuous Integration (CI) and some practices developers should follow to ensure a smooth environment.
</blockquote>
<p>
He talks some about what "continuous integration" is and how much it relies on an automation of the process around your delivery of software. He mentions integration of testing (unit/acceptance/integration) and how it can help discover issues early. He includes a list of essential practices that come along with the idea of CI integration including:
</p>
<ul>
<li>Don't check in on a broken build
<li>Keep a stable build at all times
<li>Anticipate being able to revert your changes
<li>Using TDD
<li>Distributed Version Control
</ul>
<p>
He also recommends using any downtime (like waiting on a build to "go green" again) to take a few minutes away from the code - it can benefit you and your code.
</p>]]></description>
      <pubDate>Tue, 26 Mar 2013 12:20:31 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell: First Phing Plugin]]></title>
      <guid>http://www.phpdeveloper.org/news/19358</guid>
      <link>http://www.phpdeveloper.org/news/19358</link>
      <description><![CDATA[<p>
In the latest post to her site, <i>Lorna Mitchell</i> walks you through the creation of <a href="http://www.lornajane.net/posts/2013/first-phing-plugin">a first Phing plugin</a>, an extension to the popular PHP-based build tool.
</p>
<blockquote>
I'm a huge fan of <a href="http://phing.info/">Phing</a> and use it regularly for build and deployment tasks. Often, I'll ask about a plugin that I wish existed, and get a very courteous "patches welcome" from the nice people in the #phing channel on freenode. This has happened a few times, so I thought I should probably look at how to make a new phing plugin, this article shows you how to make the simplest thing I could think of: a simple "hello world" plugin.
</blockquote>
<p>
She points you to the location to grab the latest version of the tool (the github repository) and how to define a configuration file for your test runs. Then she includes the sample code showing how to create the "HelloTask" plugin. It takes an input value of "name" and displays a greeting when executed. She shows the syntax for defining this in the XML build file and the sample result when executed.
</p>]]></description>
      <pubDate>Mon, 25 Mar 2013 10:49:23 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Andrew Podner: Managing PHP Application Builds with Phing]]></title>
      <guid>http://www.phpdeveloper.org/news/19128</guid>
      <link>http://www.phpdeveloper.org/news/19128</link>
      <description><![CDATA[<p>
<i>Andrew Podner</i> has a new post to his site today <a href="http://unassumingphp.com/managing-php-application-builds-with-phing/">introducing you to Phing</a>, a PHP-based build tool (designed after on Apache Ant) that makes automating builds of your applications easy.
</p>
<blockquote>
One of the things I have been focusing on lately is trying to to a better job of mechanizing and automating the process of building and deploying an application.  The reason for this is pretty simple:  applications just seem to keep getting more and more complicated and intricate as time goes on. [...] <a href="http://www.phing.info/">Phing</a> is a "project build system" that helps developers manage repetitive tasks associated with preparation and deployment of applications.  Phing uses XML based files to allow you the ability to customize the build process to the individual application. 
</blockquote>
<p>
He walks you through the Phing installation (from PEAR, note that you can install it <a href="https://packagist.org/packages/phing/phing">via Composer</a> now too) and how to set up your first project XML definition. He shows you how to add a "target" or step to the build with the basic example of running your app's PHPUnit tests. He also includes a list of other things Phing can do and work with including CodeSniffer checks, FTP handling, version control interfaces and automated documentation.
</p>]]></description>
      <pubDate>Mon, 04 Feb 2013 09:08:16 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Project: Box - Making Creating PHARs Easier]]></title>
      <guid>http://www.phpdeveloper.org/news/18401</guid>
      <link>http://www.phpdeveloper.org/news/18401</link>
      <description><![CDATA[<p>
There's a new project on Github that wants to help making your <a href="http://php.net/phar">phar</a> archives for your PHP applications. The process is a little obtuse right now and <a href="https://github.com/kherge/Box">Box</a> wants to simplify it.
</p>
<blockquote>
Box is a library and command line application for simplifying the PHAR creation process. [Features include] creating new PHARs with a simple configuration file, add and replace files in existing PHARs, extract existing PHARs, with option to cherry pick files and verify PHAR signatures.
</blockquote>
<p>
The project is still relatively young but it looks like it's off to a good start. Phar files are a powerful tool to have in a PHP developer's arsenal but developing them can be a pain. Hopefully something like this can make life easier.  
</p>]]></description>
      <pubDate>Fri, 24 Aug 2012 10:33:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Anthony Ferrara's Blog: Building A Multi-Version Build System]]></title>
      <guid>http://www.phpdeveloper.org/news/18203</guid>
      <link>http://www.phpdeveloper.org/news/18203</link>
      <description><![CDATA[<p>
In <a href="http://blog.ircmaxell.com/2012/07/building-multi-version-build-system.html">this recent post</a> <i>Anthony Ferrara</i> has a new post showing how he created a multi-version build system to make working with multiple PHP installs (different versions) simpler....with the help of Jenkins.
</p>
<blockquote>
I've been using Jenkins to manage builds of my projects for a while now. This was fine for a while, but now that my projects need to support multiple versions of PHP, it left something to be desired. I wanted a system that could build against multiple versions of PHP. And more so, I wanted to be able to build against multiple compiles of the same version (different options, etc). This is how I built just such a system...
</blockquote>
<p>
He gives an overview of the Jenkins system, the hardware and operating system that runs the server as well as examples of his "php-build" command to generate the different environments. He uses a modified version of the <a href="http://jenkins-php.org/">PHP template</a> for Jenkins as a base.
</p>]]></description>
      <pubDate>Mon, 09 Jul 2012 15:42:32 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Deploy and Release your Applications with Phing]]></title>
      <guid>http://www.phpdeveloper.org/news/17806</guid>
      <link>http://www.phpdeveloper.org/news/17806</link>
      <description><![CDATA[<p>
In <a href="http://phpmaster.com/deploy-and-release-your-applications-with-phing/">this new post</a> to the PHPMaster.com site today <i>Vito Tardia</i> introduces you to <a href="http://phing.info">Phing</a>, a tool for making builds and deploying your applications (and it's PHP based!)
</p>
<blockquote>
Suppose you have a web application that is installed on many hosts. Each installation may have a custom configuration, and the application is still in active development. You need an easy way to deploy new features and bug fixes to all of hosts. [...] In this article I show you how to use this knowledge [from <a href="http://phpmaster.com/using-phing/">this previous article</a>] to write a boilerplate build file, one that can be customized and reused in your real-world applications. We'll use Phing's Subversion tasks to manage the repository and the FileSync extension to synchronize your local installation with a remote server.
</blockquote>
<p>
He helps you to get the environment set up correctly (installing the needed PEAR packages), create a basic build file with the FTP settings in it and creating a "deploy" target to do the work. He also shows the settings/configuration involved in a "prepare" target that does the SVN work to do some of the pre-push work. Finally, he shows a "release" target that bundles up the files into a package and pushes it up to the server (via FTP).
</p>]]></description>
      <pubDate>Thu, 12 Apr 2012 08:24:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Touchdown Services Blog: Phing development update 01/04/2012]]></title>
      <guid>http://www.phpdeveloper.org/news/17766</guid>
      <link>http://www.phpdeveloper.org/news/17766</link>
      <description><![CDATA[<p>
On the Touchdown Consulting Services blog, there's <a href="http://www.touchdownconsulting.nl/2012/04/phing-development-update-01042012/">a new update posted about Phing</a>, the popular PHP-based <a href="http://phing.info">build tool</a> and some recent advancements the project has made.
</p>
<blockquote>
<a href="http://www.touchdownconsulting.nl/2012/03/phing-development-update/">Roughly a month ago I posted</a> the first in, what should become, a series of development updates concerning <a href="http://www.phing.info/">Phing</a>. This second blog post details the most important updates during the past four weeks as Phing is moving steadily towards another release (2.4.10 is due out next week).
</blockquote>
<p>Updates mentioned in this post are:</p>
<ul>
<li>User Guide starts move to DocBook format
<li>Liquibase docs
<li>PhpDocumentor
<li>PHP 5.4 compatibility
<li>PHAR package
<li>Various (bug)fixes, the 2.4.10 release (listed)
</ul>
<p>
Check out the <a href="http://www.touchdownconsulting.nl/2012/04/phing-development-update-01042012/">full post</a> for more details on each of these topics.
</p>]]></description>
      <pubDate>Tue, 03 Apr 2012 08:43:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Continuous Integration (with Jenkins), Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/17761</guid>
      <link>http://www.phpdeveloper.org/news/17761</link>
      <description><![CDATA[<p>
Following up from <a href="http://phpdeveloper.org/news/17726">his previous post</a> about setting up PHP with Jenkins, <i>J Armando Jeronymo</i> is back with <a href="http://phpmaster.com/continuous-integration-with-jenkins-2/">part two</a> of the series - setting up an example project to show how the pieces fit together.
</p>
<blockquote>
In the <a href="http://phpmaster.com/continuous-integration-with-jenkins-2">first part of this article</a> I presented the case for Continuous Integration. Now we'll install and set Jenkins up to monitor the automatic building of a simple demonstration PHP application. We'll begin with the demo project, then address Jenkins' installation, and finally set it up and watch it running.
</blockquote>
<p>
He includes a sample project structure, complete with a PHP class and its tests. He shows how to manually run things first (so you'll know what the commands do), the contents of the class/tests and the example Ant configuration file. He's also included screenshots of the Jenkins interface, showing how to create a build, add a new step and let the build run to evaluate the results.
</p>]]></description>
      <pubDate>Mon, 02 Apr 2012 08:18:49 -0500</pubDate>
    </item>
  </channel>
</rss>
