<?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 21:36:30 -0500</pubDate>
    <ttl>30</ttl>
    <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[Andi Gutmans: Zend Server 6 is launched and available on the Amazon Web Services (AWS) Marketplace]]></title>
      <guid>http://www.phpdeveloper.org/news/19214</guid>
      <link>http://www.phpdeveloper.org/news/19214</link>
      <description><![CDATA[<p>
<i>Andi Gutmans</i> has a new post to his site about a recent update to the offerings on the Amazon Web Services (AWS) - it <a href="http://andigutmans.blogspot.com/2013/02/zend-server-6-is-launched-and-available.html">now offers Zend Server 6</a> as an installable option.
</p>
<blockquote>
Zend Server 6 is the ideal application platform for mobile and web applications, and this version brings a new level of enterprise capabilities. [...] Today, I'm also pleased to share that this newest version of Zend Server is now available on the <a href="https://aws.amazon.com/marketplace/pp/B00BF5F7ES/ref=sp_mpg_product_title?ie=UTF8&sr=0-4">Amazon Web Services Marketplace</a>. Now, for one combined fee with Amazon Web Services, you can run your applications on a fully supported PHP application platform with Zend Server 6 running on Red Hat Enterprise Linux or Ubuntu Linux.
</blockquote>
<p>
If you're interested in what Zend Server has to offer, check out <a href="http://www.zend.com/en/products/server">the product page</a> on the Zend website. Zend Server handles a lot of the base level things for you and can help you get up and running quickly. It includes things like detailed monitoring, error tracking, code tracing and a nice UI to for management and configuration of the server.
</p>]]></description>
      <pubDate>Thu, 21 Feb 2013 10:40:26 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Maarten Balliauw: Running unit tests when deploying to Windows Azure Web Sites]]></title>
      <guid>http://www.phpdeveloper.org/news/19110</guid>
      <link>http://www.phpdeveloper.org/news/19110</link>
      <description><![CDATA[<p>
<i>Maarten Balliauw</i> has a new post to his site showing you how to <a href="http://blog.maartenballiauw.be/post/2013/01/30/Running-unit-tests-when-deploying-to-Windows-Azure-Web-Sites.aspx">execute your unit tests</a> (in this case PHPUnit) when you deploy your instance out to the Windows Azure platform.
</p>
<blockquote>
When deploying an application to Windows Azure Web Sites, a number of deployment steps are executed. For .NET projects, msbuild is triggered. For node.js applications, a list of dependencies is restored. For PHP applications, files are copied from source control to the actual web root which is served publicly. Wouldn't it be cool if Windows Azure Web Sites refused to deploy fresh source code whenever unit tests fail? In this post, I'll show you how.
</blockquote>
<p>
He creates a super basic script using <a href="http://silex.sensiolabs.org/">Silex</a> and writes up a test with some dummy assertions, checking if true equals true. He then steps you through updating the current "deploy.sh" script to add in a call to execute PHPUnit and an "exitWithMessageOnError" statement. This statement kicks it back and causes the deployment to fail when tests don't pass (as seen <a href="http://blog.maartenballiauw.be/image.axd?picture=image_257.png">here</a>).
</p>]]></description>
      <pubDate>Wed, 30 Jan 2013 10:25:20 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[OpenShift Blog: Integrate PHPStorm and SFTP into OpenShift]]></title>
      <guid>http://www.phpdeveloper.org/news/18723</guid>
      <link>http://www.phpdeveloper.org/news/18723</link>
      <description><![CDATA[<p>
On the RedHat OpenShift blog (platform-as-a-service PHP hosting) they have a new post showing you how to <a href="https://openshift.redhat.com/community/blogs/integrate-phpstorm-and-sftp-into-openshift">integrate PHPStorm into OpenShift</a> and make deployment simpler.
</p>
<blockquote>
"<a href="http://www.jetbrains.com/phpstorm/">PhpStorm</a> is a lightweight and smart PHP IDE focused on developer productivity that deeply understands your code, provides smart code completion, quick navigation and on-the-fly error checking. It is always ready to help you shape your code, run unit-tests or provide visual debugging." In this tutorial I will show you how to use build in functionality in PhpStorm to deploy PHP application to OpenShift.
</blockquote>
<p>
Screenshots are included in the post to guide you through the process - creating a new project, setting up the SFTP configuration and where to go to upload the changes to your system to OpenShift.
</p>]]></description>
      <pubDate>Fri, 09 Nov 2012 12:47:45 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Quick Tip: Deploy PHP to Heroku in Seconds]]></title>
      <guid>http://www.phpdeveloper.org/news/18674</guid>
      <link>http://www.phpdeveloper.org/news/18674</link>
      <description><![CDATA[<p>
For anyone that's wanted to try out the <a href="http://heroku.com">Heroku</a> hosting platform but just want a bare-bones guide to getting up and running, NetTuts.com has <a href="http://net.tutsplus.com/tutorials/php/quick-tip-deploy-php-to-heroku-in-seconds/">what you're looking for</a>.
</p>
<blockquote>
We've raved about the brilliance of <a href="http://www.heroku.com/">Heroku</a> before, mostly around the fact that it makes launching a Rails or Node app rather simple without having to configure your own server. But what if you want the same kind of freedom and speed of deployment with PHP? Fortunately, Heroku has quietly offered support for PHP for quite some time.
</blockquote>
<p>
You'll need to get their <a href="https://toolbelt.heroku.com/">CLI deployment tool</a> and <a href="https://api.heroku.com/signup">set up an account</a> but the rest is pretty easy. The steps to set up the git repo, add a new "heroku" branch and push the checked in code directly out to the server. 
</p>]]></description>
      <pubDate>Tue, 30 Oct 2012 09:50:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[James Morris' Blog: Deploy a Silex App Using Git Push]]></title>
      <guid>http://www.phpdeveloper.org/news/18184</guid>
      <link>http://www.phpdeveloper.org/news/18184</link>
      <description><![CDATA[<p>
<i>James Morris</i> has a new post to his blog showing you how you can <a href="http://blog.jmoz.co.uk/deploy-git-push-php-silex">deploy a Silex-based application</a> via git and a post-receive hook on the server side.
</p>
<blockquote>
Up until a few days ago I used to use a small bash deployment script to deploy a few simple sites to my live box. The process was a git archive and extract, then an rsync to the live site. Only inspecting it recently I realised that rsync no longer sent just the changes but all of the files, I'd never noticed before as the sites were so small the deploy was over very quickly. The rsync used to work fine before as I would deploy my current working code where the timestamps on files would match the server. Since I started using git at home for dev, the git archive method timestamps the files with the latest commit's timestamp. This messes up rsync.
</blockquote>
<p>
His process involves a checked in version of Silex, a development branch, a push of the code to the live machine and an install script to set up Silex. He includes the "technical breakdown" and the information needed to replicate it - the .gitignore, setting up password-less SSHing, setting up the server and creating the git post-receive hook (a bash script).
</p>]]></description>
      <pubDate>Thu, 05 Jul 2012 09:35:40 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[User Group:  Guelph PHP User Group - May 30th @ 7:30pm - Deploying Database Changes]]></title>
      <guid>http://www.phpdeveloper.org/news/18025</guid>
      <link>http://www.phpdeveloper.org/news/18025</link>
      <description><![CDATA[<p>
The Guelph PHP User Group (Guelph, Ontario) is having a meeting <b>tonight</b>, May 30th at 7:30 PM hosted at the <a href="http://well.ca/">Well.ca</a> offices. The topic will be <a href="http://www.meetup.com/Guelph-PHP/events/57764322/">deploying database changes</a> presented by <i>Colin DeCarlo</i>.
</p>
<blockquote>
This month Colin DeCarlo will be talking about a tool called Liquibase which allows you to manage and automate database deployments as part of your build and deployment process. He'll also be looking at how to integrate it with Jenkins and may even talk a little about how this tool is used at Freshbook...
</blockquote>
<p>
If you'd like to attend, please <a href="http://www.meetup.com/Guelph-PHP/events/57764322/">let them know</a> sometime today so they can know how many to expect!
</p>
<p>
If you have a user group meetup that you'd like to announce, <a href="mailto:info@phpdeveloper.org">email the information</a> over and it'll get posted!
</p>]]></description>
      <pubDate>Wed, 30 May 2012 07:40:15 -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[Till Klampaeckel's Blog: Deploying PHP applications: PEAR and composer resources for chef]]></title>
      <guid>http://www.phpdeveloper.org/news/17592</guid>
      <link>http://www.phpdeveloper.org/news/17592</link>
      <description><![CDATA[<p>
In a new post to his site <i>Till Klampaeckel</i> shows how to <a href="http://till.klampaeckel.de/blog/archives/180-Deploying-PHP-applications-PEAR-and-composer-resources-for-chef.html">use PEAR and composer resources</a> (two popular PHP package management tools) from inside of a chef deployment script.
</p>
<blockquote>
This is something experimental I have been working on for our chef deployments. So the objective was/is to find a sane way to install PEAR packages and install dependencies with composer.
</blockquote>
<p>
He shows how to set up the configuration script to discover a new PEAR channel, make the chef script not "fail hard" if a command returns a failed response code (as PEAR will do if the channel is already discovered). The "ignore_failure" configuration directive comes in handy for this. He also shows how to implement a <a href="http://wiki.opscode.com/display/chef/Lightweight+Resources+and+Providers+%28LWRP%29">LWRP</a> in chef for both a PEAR and Composer resource. 
</p>
<p>
You can find the code for this and other cookbook examples <a href="https://github.com/till/easybib-cookbooks/tree/master/php/">on his github account</a>.
</p>]]></description>
      <pubDate>Mon, 27 Feb 2012 13:17:57 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Brian Swan's Blog: Automating PHPUnit Tests in Windows Azure]]></title>
      <guid>http://www.phpdeveloper.org/news/17351</guid>
      <link>http://www.phpdeveloper.org/news/17351</link>
      <description><![CDATA[<p>
<i>Brian Swan</i> has posted another tutorial in a series looking at testing applications on the Azure platform. In <a href="http://blogs.msdn.com/b/silverlining/archive/2012/01/03/automating-phpunit-tests-in-windows-azure.aspx">this latest post</a> he talks about how to automate your <a href="http://phpunit.de">PHPUnit</a> tests as a part of the start up of the instance.
</p>
<blockquote>
In this post, I'll show you how to deploy your PHPUnit tests with your application, have the tests run as a start up task, and have the results written to your storage account for analysis. Attached to this post is a .zip file that contains a skeleton project that you can use to automatically run PHPUnit tests when you deploy a PHP application to Azure. I'll walk you though how to use the skeleton project, then provide a bit more detail as to how it all works (so you can make modifications where necessary).
</blockquote>
<p>He has it broken up into a few easy-to-follow steps:</p>
<ul>
<li>Download <a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-25-21-34/AzurePHPWebRole.zip">the AzurePHPWebRole</a> zip archive and unpack it
<li>Copy your application, tests and PHP installation into the resulting file structure
<li>Create a skeleton "ServiceConfiguration.cscfg" file with the "cspack" command and edit it to change the "osfamily" and "osversion" settings
<li>Use "cspack" to package up the application and <a href="http://azurephp.interoperabilitybridges.com/articles/deploying-your-first-php-application-to-windows-azure#new_deploy">deploy the application</a>
</ul>
<p>
He walks you through the "how it works" steps too - the things that happen for you automatically on the server side to do things like set up the file to log to, configure the PHP environment and execute the "runtests" Powershell file as included in the AzurePHPWebRole download.
</p>]]></description>
      <pubDate>Thu, 05 Jan 2012 11:58:46 -0600</pubDate>
    </item>
  </channel>
</rss>
