<?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 20:05:24 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Volker Dusch: If it's not written in PHP it's irrelePHPant!]]></title>
      <guid>http://www.phpdeveloper.org/news/18773</guid>
      <link>http://www.phpdeveloper.org/news/18773</link>
      <description><![CDATA[<p>
<i>Volker Dusch</i> has a new <a href="http://edorian.posterous.com/if-its-not-written-in-php-its-irrelephpant">tongue-in-cheek post</a> to his site talking about a few pieces of useful software that are not written in PHP...and why not?
</p>
<blockquote>
Dear PHP Community, we need to have a talk about the insufferable state of your software stacks. It was recently brought to my attention that there is software out there, software we use every day!, that is NOT written in PHP. This is completely unacceptable! We are PHPeople! We're not "Web" Developers, we are the web. And we sure as hell are not some fancy "Software Developer", you can ask anyone on the internet! Seriously: If it's not PHP how will we ever be able to extend and adapt it to our needs! We are slaves of our tools!
</blockquote>
<p>
He mentions several tools that, yes, while not written in PHP are very useful to just about any developer out there (including git, Puppet and Apache). But, more seriously:
</p>
<blockquote>
PHP is a language that enables absolute beginners to start creating on the web using FTP and notepad! It let's us realize and validate our ideas blazingly fast and allows us to adapt our successful ideas to beautifully scale with our requirements providing and relying on solid, battle-proof tools.
</blockquote>]]></description>
      <pubDate>Tue, 20 Nov 2012 09:11:51 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Jeremy Cook: Continuous Deployment with Symfony2, Jenkins and Capifony]]></title>
      <guid>http://www.phpdeveloper.org/news/18748</guid>
      <link>http://www.phpdeveloper.org/news/18748</link>
      <description><![CDATA[<p>
<i>Jeremy Cook</i> has a recent post to his site showing how he <a href="http://jeremycook.ca/2012/11/04/continuous-deployment-with-symfony2-jenkins-and-capifony/">set up Capifony and Jenkins</a> to do continuous deployment with a Symfony2-based application (including a full recipe for the deployment). 
</p>
<blockquote>
It seems that many people talk about setting up a continuous deployment system but few actually take the plunge and make it a reality. I've recently set up continuous deployment for an API project at work and thought I would blog about how I got it all to work.
</blockquote>
<p>
He starts by laying out the plan for the system and what it's intended to do (an excellent first step). This is followed by details on <a href="http://capifony.org/">Capifony</a> and what kind of advantages it offers for deployment. He shares the full contents of his "deploy.rb" file that includes the actual steps for the deployment including a git checkout, a <a href="http://getcomposer.org">Composer</a> install, warming up the Symfony cache and restarting Apache. He also includes how they have it set up with Jenkins, having the build triggered when the main project's build completes successfully.
</p>]]></description>
      <pubDate>Wed, 14 Nov 2012 13:35:08 -0600</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: Automate PSR Compliance through Jenkins]]></title>
      <guid>http://www.phpdeveloper.org/news/18166</guid>
      <link>http://www.phpdeveloper.org/news/18166</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's new tutorial showing how you can <a href="http://phpmaster.com/automate-psr-compliance-through-jenkins/">enforce compliance with the PSR standards</a> in your application's code with the help of the <a href="http://jenkins-ci.org/">Jenkins</a> continuous integration tool.
</p>
<blockquote>
Though it's still early to guarantee that the PSRs will be widely adopted as the de facto standard for writing serious PHP applications, it is interesting to note that a code sniffer and fixer that looks for code deviations was developed by nobody less than Fabien Potencier, the creator of the Symfony framework. (Et bien, ils ne sont pas fous, ces français!) In the rest of the article we shall find out what his PHP-CS-Fixer does and how can it be integrated with a CI tool like Jenkins.
</blockquote>
<p>
He shows how to install a tool that can help you keep your source in compliance - the <a href="http://cs.sensiolabs.org/">"fixer"</a> (created by <i>Fabien Potencier</i>) to help correct the problems found in your code. He includes the command line calls you'll need to run the tool on your code and how to add the step to your build.
</p>]]></description>
      <pubDate>Tue, 03 Jul 2012 09:08:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Marcelo Gornstein's Blog: PHP Continuous integration, with Jenkins and Phing]]></title>
      <guid>http://www.phpdeveloper.org/news/17879</guid>
      <link>http://www.phpdeveloper.org/news/17879</link>
      <description><![CDATA[<p>
On his site <i>Marcelo Gornstein</i> has published a new guide to getting a basic automated continuous integration server set up <a href="http://marcelog.github.com/articles/ci_jenkins_hudson_continuous_integration_php_phing.html">with Jenkins and Phing</a>.
</p>
<blockquote>
This article is about how to use <a href="http://www.phing.info/trac/">Phing</a> in your projects, so a <a href="http://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a> server (in this case <a href="http://jenkins-ci.org/>Jenkins</a> -ex Hudson-) can generate the necessary <a href="http://en.wikipedia.org/wiki/Artifact_(software_development)">artifacts</a> for your php application (deployment artifacts, documentation, code metrics, etc). I'll try to show why this will make your life easier when developing or auditing code, generating releases and deploying new versions, trace bugs, etc. All with just a handful of phing tasks. 
</blockquote>
<p>
He introduces the Phing tool and explains how it makes automating the steps of your process simpler, relating it to the <a href="http://ant.apache.org/">Apache Ant</a> tool for those familiar with it. He links to several of the resources used in the process including <a href="http://phpmd.org/>PHPMD</a>, <a href="https://github.com/sebastianbergmann/phploc>PHPLoc</a>, <a href="http://www.docblox-project.org/">DocBlox</a> and <a href="https://github.com/marcelog/Ci-Php-Phing-Example">the code for the article</a> itself. He outlines the process and, complete with <a href="http://marcelog.github.com/articles/ciconfigexample.jpeg">a screenshot of the final result</a>, shows you how to get everything configured and running smoothly.
</p>]]></description>
      <pubDate>Fri, 27 Apr 2012 12:18:30 -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>
    <item>
      <title><![CDATA[PHPMaster.com: Continuous Integration (with Jenkins), Part 1]]></title>
      <guid>http://www.phpdeveloper.org/news/17726</guid>
      <link>http://www.phpdeveloper.org/news/17726</link>
      <description><![CDATA[<p>
For anyone out there wanting to get a build process going for their latest project (or maybe even an older one), PHPMaster.com has <a href="http://phpmaster.com/continuous-integration-with-jenkins-1/">the first part</a> of a series about doing continuous integration with Jenkins posted with some good tips for you to get started.
</p>
<blockquote>
What Jenkins does is not difficult to understand once you know why it does that. In this 2-part series I'll present a big-picture overview of the sort of programming problems CI can solve, show how it can be achieved with the help of specialized software and explain how Jenkins can be minimally used to periodically trigger testing and building of PHP (web)applications, keeping a record of where integration succeeded or failed and maintaining an "output" folder up-to-date with the latest files that the application requires, ready to be uploaded to the server.
</blockquote>
<p>
He uses a story to illustrate the usefulness of a Jenkins CI server, telling about different people working on different parts of an application and the differing decisions they all make about the code. He talks about how, with the help of a CI server, they could have avoided "integration hell" when they tried to bring their work back together and how things like version control, unit testing and automated builds could help.
</p>
<p>
There's brief instructions at the end to be sure you have two things set up before continuing on with the rest of the series - <a href="http://git-scm.com/">git</a> for version control and <a href="http://ant.apache.org/">ant</a> for the build process.
</p>]]></description>
      <pubDate>Mon, 26 Mar 2012 08:47:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Getting Started with Jenkins for PHP Developers]]></title>
      <guid>http://www.phpdeveloper.org/news/16503</guid>
      <link>http://www.phpdeveloper.org/news/16503</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a new tutorial from <i>Jason Gilmore</i> helping you <a href="http://www.phpbuilder.com/columns/jenkins-ci/Jason_Gilmore06212011.php3">get started with Jenkins</a> for building and deploying your PHP applications. Jenkins (formerly Hudson) can make things "one click simple" for you to correctly push your applications live every time.
</p>
<blockquote>
Although a Java-based solution, an active plugin community has made it possible to use Jenkins for far more than Java-specific projects. More recently it has become much easier for Jenkins' novices to use the project in conjunction with PHP projects thanks to the work of <a href="http://sebastian-bergmann.de/">Sebastian Bergmann</a>. Known as <a href="http://jenkins-php.org/">Template for Jenkins Jobs for PHP Projects</a>, the project provides a configuration file which you'll use to enable Jenkins/PHP integration, and supports several popular familiar PHP tools such as <a href="http://www.phpbuilder.com/columns/PHP_CodeSniffer/Jason_Gilmore10212010.php3">PHP_CodeSniffer</a> and <a href="http://www.phpbuilder.com/columns/Jason_Gilmore052510.php3">PHPUnit</a>.
</blockquote>
<p>
He walks you through a brief installation of Jenkins (packages on a Debian install) and shows you how to get your git repository, the source for it to pull from) configured and ready to pull. He also includes some other screenshots showing you where to look for the build status, results from past builds and how to get the system to build documentation as a part of the build.
</p>]]></description>
      <pubDate>Wed, 22 Jun 2011 09:20:26 -0500</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[Stefan Koopmanschap's Blog: API documentation in Jenkins with DocBlox]]></title>
      <guid>http://www.phpdeveloper.org/news/16281</guid>
      <link>http://www.phpdeveloper.org/news/16281</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Stefan Koopmanschap</i> shows you how to <a href="http://www.leftontheweb.com/message/API_documentation_in_Jenkins_with_DocBlox">get DocBlox installed</a> for your documentation-generation needs as an alternative to <a href="http://www.phpdoc.org/">phpDocumentor</a>.
</p>
<blockquote>
People using PHP that want API documentation usually automatically think of <a href="http://www.phpdoc.org/">phpDocumentor</a>, which used to be the de facto standard for generating API documentation from your PHP projects. However, the project has been dormant for a long time now and definitely does not support new PHP features such as namespaces, so it was really time to look for an alternative. In this blogpost, I'll show you how I set up my Jenkins CI to use DocBlox, one of the new API documentation generators currently available.
</blockquote>
<p>
The <a href="http://docblox-project.org/">DocBlox project</a> is in active development and supports additional things in top of the current feature set phpDocumentor includes. <i>Stefan</i> gives you the exact XML you'll need to include in your Jenkins build file (and the phpDocumentor line it will likely replace) that builds out the documentation to a given path. He's given an example <a href="https://github.com/skoop/phpOpenNOS/blob/master/build.xml">of his full build file</a> to give you some context too.
</p>]]></description>
      <pubDate>Mon, 02 May 2011 11:26:40 -0500</pubDate>
    </item>
  </channel>
</rss>
