<?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>Wed, 23 May 2012 04:05:05 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Sean Coates' Blog: Use `env`]]></title>
      <guid>http://www.phpdeveloper.org/news/17984</guid>
      <link>http://www.phpdeveloper.org/news/17984</link>
      <description><![CDATA[<p>
<i>Sean Coates</i> has posted a reminder for PHP developers (and really anyone executing command-line scripts) to <a href="http://seancoates.com/blogs/use-env">use "env"</a> instead of hard-coding the path to the PHP interpreter.
</p>
<blockquote>
These [support] scripts often run PHP in Gimme Bar land, and we make extensive use of the shebang syntax that uses common Unix practice of putting #!/path/to/interpreter at the beginning of our command-line code. Clearly, this is nothing special -lots of people do exactly this same thing with PHP scripts. One thing I have noticed, though, is that many developers of PHP scripts are not aware of the common Unix(y) environment helper, env.
</blockquote>
<p>
The "env" alias makes use of your currently defined include path to track down a PHP binary to use to execute the script. Since there's only a "best practices" approach to places to put PHP on a server, the "env" usage makes your script more portable and it's one less thing to remember to change.
</p>
<blockquote>
If you distribute a PHP application that has command-line scripts and shebang lines, I encourage you to adopt the practice of making your shebang line "#!/usr/bin/env php". Note that this doesn't just apply to PHP of course, but I've seen a definite lack of env in the PHP world.
</blockquote>]]></description>
      <pubDate>Mon, 21 May 2012 11:58:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Nefarious Designs Blog: Vagrant Virtualised Dev Environments]]></title>
      <guid>http://www.phpdeveloper.org/news/17670</guid>
      <link>http://www.phpdeveloper.org/news/17670</link>
      <description><![CDATA[<p>
On the Nefarious Designs blog there's a <a href="http://nefariousdesigns.co.uk/vagrant-virtualised-dev-environments.html">(very complete) guide to Vagrant</a> and using it to set up easily reproducible versions of your development environment.
</p>
<blockquote>
In case you've been living under a rock for the past couple of years, Vagrant is the latest development in easily controlled virtualised environments. [...] Vagrant automates creation and provisioning of virtual machines within VirtualBox via the command line, whilst also allowing for easy distribution and reuse across multiple projects. In this article, I'm going to look at how it can make life considerably easier when dealing with development environments.
</blockquote>
<p>Included in the post is just about everything you'll need to get started using this powerful tool:</p>
<ul>
<li>A link to <a href="http://vagrantbox.es/">Vagrant images</a>
<li>A guide to the VagrantFile
<li>the Provisioning process
<li> Interacting/Controllig the Vagrant VMs
</ul>
<p>
He also includes a basic setup of an environment (with the Vagrant config to create it) and an example of using Puppet to provision the Vagrant VMs.
</p>]]></description>
      <pubDate>Wed, 14 Mar 2012 08:16:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Joshua Thijssen's Blog: Setting up a development environment]]></title>
      <guid>http://www.phpdeveloper.org/news/17499</guid>
      <link>http://www.phpdeveloper.org/news/17499</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Joshua Thijssen</i> <a href="http://www.adayinthelifeof.nl/2012/02/04/setting-up-a-development-environment/">gives a guide</a> to how he usually sets up his development environments when working in PHP. It includes working with virtual machines, configuring DNS and setting up his tools to work with it all.
</p>
<blockquote>
Doing development on multiple projects can be a burden from time to time. One project would be running on PHP 5.3, while another still needs 5.1. Sometimes you need a MySQL server, while on other occasions, you need a NoSQL solution like couchDB or MongoDB together with all kind of gearman functionality. This article shows you how I've setup such a development platform that allows you to quickly create new projects, and still maintain flexibility when you need it.
</blockquote>
<p>
He uses <a href="https://www.virtualbox.org/">VirtualBox</a> with either a Debian or CentOS installation as a base platform. He uses Vagrant to set up and configure the machines to make setup almost automatic. He still has to go in and configure a few things like the VirtualHost and DNS settings for the site/application he's working on. 
 Next up is setting up the tools he uses, specifically <a href="http://xdebug.org">XDebug</a> and setting up his editor of choice (PHPStorm) for remote debugging.
</p>]]></description>
      <pubDate>Mon, 06 Feb 2012 09:27:41 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Better Remote Code Development]]></title>
      <guid>http://www.phpdeveloper.org/news/17359</guid>
      <link>http://www.phpdeveloper.org/news/17359</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> is <a href="http://www.littlehart.net/atthekeyboard/2012/01/05/better-remote-code-development/">asking for suggestions</a> to help solve a common problem for developers (remote or otherwise) that have to develop in a non-local setup: a better method for remote code development.
</p>
<blockquote>
I've been playing around with <a href="http://www.sublimetext.com/">Sublime Text</a> (because of the awesome vim bindings) and was thinking about why do I always have to be logged into the remote server to do my work. Normally I connect using SSH, then attach to my <a href="http://tmux.sourceforge.net/">tmux</a> session and then fire up vim. This is okay but it lacks a certain elegance in it's approach. [...] What I'm chafing against is having to deal with multiple environments all the time to get my work done.
</blockquote>
<p>
His ultimate goal is to be able to update and commit code without having to be logged into the remote server - essentially to replicate the local development experience regardless of the underlying technology. Have a suggestion or a method that's currently working for you? <a href="http://www.littlehart.net/atthekeyboard/2012/01/05/better-remote-code-development/#comments">Leave him a comment</a>!
</p>]]></description>
      <pubDate>Fri, 06 Jan 2012 11:02:55 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Joshua Thijssen's Blog: LAMP-stack? Forget it! It's a LAMPGMVNMCSTRAH-stack now...]]></title>
      <guid>http://www.phpdeveloper.org/news/17052</guid>
      <link>http://www.phpdeveloper.org/news/17052</link>
      <description><![CDATA[<p>
These days there's much more involved in making a good, solid web application than just the platform you serve from. <i>Joshua Thijssen</i> knows this and humorously points it out <a href="http://www.adayinthelifeof.nl/2011/10/26/lamp-stack-forget-it-its-a-lampgmvnmcstrah-stack-now/">in a new post</a> about a "LAMPGMVNMCSTRAH-stack" (that's fifteen different technologies for those counting).
</p>
<blockquote>
Back in the good old days - and in internet-time, this actually means just a few years ago - people were quite happy with their LAMP stack: Linux, Apache, MySQL and PHP. With this quartet, or a variation on it like PostgreSQL instead of MySQL, we could do everything: create a blog-site, setup an e-commerce web shop, making a guestbook, you name it and it was there.. But times have changed... radically.
</blockquote>
<p>
He talks about this "brave new world" developers live in today where they can't know everything that happens in every facet of the application (he likens it to the responsibilities of generals vs infantry in the army). 
</p>
<blockquote>
As a programmer, you simply cannot pretend that you and you alone are running a system. You are part of a whole, and even though you might be the most important part, or the controlling part, you still need to work with other components in order to get the job done. If you forget this, no matter how good your part is running, the whole system will fail because you either decided to do too much yourself, or did not correctly utilize the rest of the system.
</blockquote>
<p>
Wondering what his acronym stands for? LAMPGMVNMCSTRAH is short for "Linux, Apache, MySQL, PHP, Gearman, Memcached, Varnish, Ngnix, MongoDB, CouchDB, Solr, Tika, Redit, ActiveMQ, Hadoop."
</p>]]></description>
      <pubDate>Thu, 27 Oct 2011 12:49:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Tom Jowitt's Blog: Streamlined PHP Development - Part III]]></title>
      <guid>http://www.phpdeveloper.org/news/16701</guid>
      <link>http://www.phpdeveloper.org/news/16701</link>
      <description><![CDATA[<p>
<i>Tom Jowitt</i> has posted his <a href="http://www.tomjowitt.co.uk/2011/07/21/streamlined-php-development-part-iii/">third part</a> in his "streamlined PHP development" series today focusing on working with databases and setting it up with your automated deployment system (parts <a href="http://phpdeveloper.org/news/16603">one</a> and <a href="http://phpdeveloper.org/news/16610">two</a>).
</p>
<blockquote>
In the first two parts of this series we covered <a href="http://www.tomjowitt.co.uk/2011/07/16/streamlined-php-development-part-i/">setting up the server</a> and an <a href="http://www.tomjowitt.co.uk/2011/07/20/streamlined-php-development-part-ii/">introduction to Phing</a>. This post will cover managing our database code with <a href="http://dbdeploy.com/">dbdeploy</a> and Phing.
</blockquote>
<p>
He points out that there's no "silver bullet" when it comes to automated database management but he's found <a href="http://dbdeploy.com/">dbdeploy</a> as a good tool for his needs. He includes the configuration changes to get the database login information into Phing and a few new targets/tasks to add to the Phing configuration for initializing the database and applying patches.
</p>]]></description>
      <pubDate>Wed, 10 Aug 2011 11:09:04 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Pim Elshoff's Blog: Setting up a kickass development environment on Windows]]></title>
      <guid>http://www.phpdeveloper.org/news/16634</guid>
      <link>http://www.phpdeveloper.org/news/16634</link>
      <description><![CDATA[<p>
<i>Pim Elshoff</i> has a recent post to his blog looking at a "<a href="http://www.pelshoff.com/2011/07/setting-up-a-kickass-development-environment-on-windows">kickass development environment</a>" he's gotten working on Windows that includes PEAR, some type of version control (git or svn - take your pick), Ant for builds and Jenkins for continuous integration.
</p>
<blockquote>
Recently I have become quite interested in quality assurance. Not that many things are going wrong for me, but I'd really like to be more certain about the quality of my work. I've used some tools to help me achieve just that. In less than two hours you can set up your workspace and have the living daylights automated out of you!&#65279;
</blockquote>
<p>
He <a href="http://www.pelshoff.com/2011/07/setting-up-a-kickass-development-environment-on-windows">provides a full guide</a> to getting the full stack set up including the command-line calls you'll need to make, creating a new build file for Ant and setting up the PHP tools (like Phpmd, DocBlox and Pdepend). In the end, you should see something similar to <a href="http://www.pelshoff.com/UserFiles/Images/Large/BlogImages/Jenkins_screenshot.png">this setup</a> in your Jenkins build.
</p>]]></description>
      <pubDate>Tue, 26 Jul 2011 11:04:39 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Rob Allen's Blog: Setting up PHP & MySQL on OS X 10.7 Lion]]></title>
      <guid>http://www.phpdeveloper.org/news/16628</guid>
      <link>http://www.phpdeveloper.org/news/16628</link>
      <description><![CDATA[<p>
<i>Rob Allen</i> has posted his own guide to getting <a href="http://akrabat.com/php/setting-up-php-mysql-on-os-x-10-7-lion/">PHP 5.3 set up on OS X 10.7 Lion</a>, the just-released update for Apple's operating system. It comes with a bundled set of PHP-related tools but you might want to set them up your own way. This is where the guide comes in.
</p>
<blockquote>
With OS X 10.7, Apple continues to ship PHP 5.3 with PEAR, GD and PDO_MYSQL out of the box. This is how to set it up from a clean install of 10.7.
</blockquote>
<p>
He goes through each of the pieces of software and talks about where to download the latest from and what configuration steps are needed:
</p>
<ul>
<li>MySQL
<li>Apache
<li>the php.ini
<li>Xdebug
<li>PEAR
<li>PHPUnit (and friends)
<li>PECL OAuth
<li>mcrypt
</ul>]]></description>
      <pubDate>Mon, 25 Jul 2011 12:12:51 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Tom Jowitt's Blog: Streamlined PHP Development - Part II]]></title>
      <guid>http://www.phpdeveloper.org/news/16610</guid>
      <link>http://www.phpdeveloper.org/news/16610</link>
      <description><![CDATA[<p>
<i>Tom Jowitt</i> has posted the second part of his series looking at setting up a streamlined PHP development environment in <a href="http://www.tomjowitt.co.uk/2011/07/20/streamlined-php-development-part-ii/">part two</a> covering some of the basics of the build.
</p>
<blockquote>
In the <a href="http://www.tomjowitt.co.uk/2011/07/16/streamlined-php-development-part-i/">first part of this series</a> we looked at setting up our Apache installation to make life easier. Now that the basics are sorted we can start looking at how to structure our development environment and run some basic build tasks using <a href="http://www.phing.info/">Phing</a>.
</blockquote>
<p>
He shows how to use the PEAR installer to get Phing installed (including all of its dependencies) and creating the base directory for it to use in your build. He includes the contents of some of the configuration files (available <a href="https://github.com/tomjowitt/blog-examples/tree/master/streamlined-part-2">on github</a>) to set up some properties and the steps to the build process in the build.xml. He explains each part of the build process and includes <a href="http://www.tomjowitt.co.uk/wp-content/uploads/2011/07/testapp1.jpg">some</a> <a href="http://www.tomjowitt.co.uk/wp-content/uploads/2011/07/zendframework.jpg">screenshots</a> of the end result.
</p>]]></description>
      <pubDate>Wed, 20 Jul 2011 08:21:07 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Tom Jowitt's Blog: Streamlined PHP Development - Part I]]></title>
      <guid>http://www.phpdeveloper.org/news/16603</guid>
      <link>http://www.phpdeveloper.org/news/16603</link>
      <description><![CDATA[<p>
As the first part of a series, <i>Tom Jowitt</i> has posted <a href="http://www.tomjowitt.co.uk/2011/07/16/streamlined-php-development-part-i/">this introduction</a> to setting up a brand new development environment with some of the basic tools any PHP developer should need.
</p>
<blockquote>
I dunno about anyone else but my development environment is usually in some form of barely-controlled chaos. It's one command away from collapse with folders full of test software, symlinks that lead to long-forgotten libraries and ancient VCS repos that only a mother could love, all held together with sticky-tape shell scripts. [...] This series of posts will look at the tools available to PHP developers who want to be liberated from the mundane and the frustrating tasks that plague our lives.
</blockquote>
<p>
He doesn't describe the installation of the basic platform - Apache, PHP and MySQL on Ubuntu - but jumps right into the details of the settings. He shows how to:
<ul>
<li>configure the VirtualHosts in Apache, 
<li>installing and updating PEAR,
<li>Install/configure XDebug,
<li>Set up PHPUnit,
<li>and install git for version control
</ul>
<p>
In the next post he'll show how to set up <a href="http://www.phing.info/">Phing</a> for building/testing out the code.
</p>
]]></description>
      <pubDate>Mon, 18 Jul 2011 12:54:19 -0500</pubDate>
    </item>
  </channel>
</rss>

