<?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>Sun, 12 Feb 2012 17:57:14 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: A Tool's Tale]]></title>
      <guid>http://www.phpdeveloper.org/news/17479</guid>
      <link>http://www.phpdeveloper.org/news/17479</link>
      <description><![CDATA[<p>
<i>Sebastian Bergmann</i> has <a href="http://sebastian-bergmann.de/archives/919-A-Tools-Tale.html">shared a presentation</a> he originally gave at an Etsy event covering some of the history behind the popular <a href="http://phpunit.de">PHPUnit</a> tool and the development it's been through.
</p>
<blockquote>
When <a href="http://twitter.com/noahsussman">Noah Sussman</a> asked me to give a <a href="http://codeascraft.etsy.com/etsy-speaker-series/">Code as Craft Technology Talk</a> last week when I was consulting for Etsy I immediately said yes. [...] Just like with <a href="http://sebastian-bergmann.de/archives/915-Testable-Code-Rockstar-Edition.html">a talk that I gave last year</a>, I suddenly had a chain of associations in my head that I just had to follow. And down the rabbit hole I went once more ...
</blockquote>
<p>
He talks about the origins of PHPUnit (and mentions a few other tools), the move from PHP4 to PHP5, a change in version control from SVN to Git and features of the tool including mock objects and data providers. He also notes that not all tests are "good tests" and how, sometimes, backwards compatibility breaks are a good thing.
</p>]]></description>
      <pubDate>Wed, 01 Feb 2012 11:05:47 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Using Phing]]></title>
      <guid>http://www.phpdeveloper.org/news/17350</guid>
      <link>http://www.phpdeveloper.org/news/17350</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial posted about <a href="http://phpmaster.com/using-phing/">using the Phing build tool</a> to automate a process, usually a build for a website launch. In his example, he shows a simple "Hello World" example and how to work with multiple targets in the same build file.
</p>
<blockquote>
Phing is a PHP project build tool based on Apache Ant. A build system helps you to perform a group of actions using a single command. [...] Phing helps overcome [human error] issues by automating tasks like running unit tests, applying database changes, deploying application code, etc. In this article I'll show you some of the basics of working with Phing.
</blockquote>
<p>
He includes the commands you'll need to install Phing (if it's not already) via the PEAR installer and a basic "build.xml" file. He explains the parts of the file - tags for "project", "target" "echo" and "property - and includes a more complex build example with multiple targets (and how to call one specifically from the command line).
</p>]]></description>
      <pubDate>Thu, 05 Jan 2012 10:41:40 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Joshua Thijssen's Blog: php 5.4 + htrouter: Your personal Apache 2.2 compatible server]]></title>
      <guid>http://www.phpdeveloper.org/news/17296</guid>
      <link>http://www.phpdeveloper.org/news/17296</link>
      <description><![CDATA[<p>
<i>Joshua Thijssen</i> has a new post to his blog today about a feature of the upcoming PHP 5.4 release, the built-in web server, and <a href="http://www.adayinthelifeof.nl/2011/12/22/php-5-4-htrouter-your-personal-apache-2-2-compatible-server/">a handy way to reproduce .htaccess functionality</a> with the help of a simple PHP script - <a href="https://github.com/jaytaph/htrouter">htrouter</a>.
</p>
<blockquote>
The problem with the new PHP 5.4 internal web-server is that it isn't Apache. Thus it does not know anything about .htaccess. Even when you have defined your .htaccess to do authentication, the internal PHP web-server will ignore it, while in production, the authentication will be needed (if you will be running Apache, of course). Also, you need to reroute everything manually through your app_dev.php, so your URL's don't really match the way they will be on your production.
</blockquote>
<p>
He introduces the PHP web server quickly, just showing a sample command line call to start it up and to point it at a certain PHP file as a "boostrap". With the help of his <a href="https://github.com/jaytaph/htrouter">htrouter</a> script, though, you can use "modules" similar to those in Apache. He already has the HTTP auth stuff working and more is to come.
</p>]]></description>
      <pubDate>Fri, 23 Dec 2011 08:27:10 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Henrik Bj&oslash;rnskov's Blog: Stampie an in depth look]]></title>
      <guid>http://www.phpdeveloper.org/news/17266</guid>
      <link>http://www.phpdeveloper.org/news/17266</link>
      <description><![CDATA[<p>
<i>Henrik Bj&oslash;rnskov</i> has posted a bit of an <a href="http://henrik.bjrnskov.dk/stampie-in-depth/">in-depth look at Stampie</a>, an abstraction library for sending emails from PHP applications via various service providers (like <a href="http://sendgrid.com/">SendGrid</a> and <a href="http://mailchimp.com/">Mailchimp</a>).
</p>
<blockquote>
So what is Stampie. Stampie is a API wrapper for the most common email sending services. It provides a standard PHP Api to send emails. But mostly it is a project to test TDD and experiment with a couple of different things. Stampie is developed with Dependency Injection and therefore there is a lot of objects. At the start it can be quite cumbersome, but will make a lot of sense if you start to develop and add additional provider.
</blockquote>
<p>
He includes a bit of sample code showing the sending of a message via the SendGrid API backend. Extending the system is simpler thanks to DI and the customizable MailerInterface object type. There's also an AdapterInterface object that can be used to redefine the HTTP connection interface the tool uses. He also points to <a href="http://github.com/henrikbjorn/HBStampieBundle">the HBStampieBundle</a> bundle for the Symfony2 framework that can make dropping it into your current SF2 application simpler.
</p>
]]></description>
      <pubDate>Thu, 15 Dec 2011 12:48:25 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Tom Schlick's Blog: Wrench for FuelPHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17191</guid>
      <link>http://www.phpdeveloper.org/news/17191</link>
      <description><![CDATA[<p>
<i>Tom Schlick</i> has a new post to his blog talking about a tool he's written for <a href="http://fuelphp.com">FuelPHP</a>-based applications called <a href="https://github.com/tomschlick/fuel-wrench">Wrench</a>. It's a command-line tool to make taking your site "offline" simpler.
</p>
<blockquote>
If you have been following what I've been up to lately you would see that many of my recent projects are based on FuelPHP. Since Fuel is so awesome and allows you to create "packages" that can be dropped into your application, I have created a few that help me quickly piece together apps. The first package I'm "releasing" is called <a href="https://github.com/tomschlick/fuel-wrench">Wrench</a>.
</blockquote>
<p>
The tool works with the <a href="http://docs.fuelphp.com/packages/oil/intro.html">oil</a> command-line tool already included in the framework to swap out the default action with a "Down for Maintenance" message. It will look at the current state of the app and switch it to the opposite when run, but you can also define "start" and "finish" manually if you'd like. You can find the source for the package <a href="https://github.com/tomschlick/fuel-wrench">on Tom's github account</a>.
</p>
]]></description>
      <pubDate>Wed, 30 Nov 2011 12:40:57 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Code Templates, AutoHotKey, and Ditto: Speeding Up Development]]></title>
      <guid>http://www.phpdeveloper.org/news/17094</guid>
      <link>http://www.phpdeveloper.org/news/17094</link>
      <description><![CDATA[<p>
On PHPMaster.com today they share a list of <a href="http://phpmaster.com/code-templates-autohotkey-and-ditto/">helpful tools and tricks</a> that you can apply not only to your PHP development, but programming in general. They highlight code templates, using hotkeys and <a href="http://ditto-cp.sourceforge.net/">Ditto</a>.
</p>
<blockquote>
There are also other helpful pieces of software such as libraries, code snippets, and third party applications. In this article I'll show you how I use a feature built into NetBeans along with two other applications to increase my productivity when programming on Windows. These tips and techniques offer a different way of thinking about things which should be helpful to any developer, regardless of his skill level.
</blockquote>
<p>
They start with a look at the Code Templates available in NetBeans (other IDEs/editors have a similar feature) to provide an easier starting place for your code, a tool called <a href="http://www.autohotkey.com/download">AutoHotKey</a> that lets you define custom hotkey shortcuts and <a href="http://ditto-cp.sourceforge.net/">Ditto</a>, a clipboard manager that lets you manage your copy/pasting better than the single-shot functionality Windows normally has.
</p>]]></description>
      <pubDate>Mon, 07 Nov 2011 11:13:20 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lukas Smith's Blog: Why bother?]]></title>
      <guid>http://www.phpdeveloper.org/news/17034</guid>
      <link>http://www.phpdeveloper.org/news/17034</link>
      <description><![CDATA[<p>
<i>Lukas Smith</i> has put together a recent post to his blog with <a href="http://pooteeweet.org/blog/0/2014#m2014">some thoughts on standardization</a> of interfaces in PHP applications to help improve code quality and interoperability.
</p>
<blockquote>
In my previous blog post I was brainstorming the possibility of collaboration between various frameworks to define a set of common interfaces. But I kind of failed to explain why this would be useful. Herman's "rebuttal" made this omission on my part quite clear. [...] That being said the open questions left in my previous blog might still prevent this idea to take off, even if I manage to convince the general community that the above mentioned negative effects are not such a significant concern.
</blockquote>
<p>
He talks first about some of the things he sees PHP as having done right (citing its popularity) and contrasts it to Java based on the standards they impose. He goes on to mention how interfaces, introduced early enough in the process, can help with the "best tool for the job" idea (with an example involving Symfony2, Zend Framework and Doctrine).
</p>]]></description>
      <pubDate>Tue, 25 Oct 2011 08:33:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Maarten Balliauw's Blog: Running Memcached on Windows Azure for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17033</guid>
      <link>http://www.phpdeveloper.org/news/17033</link>
      <description><![CDATA[<p>
<i>Maarten Balliauw</i> has a new post to his blog with a guide to <a href="http://blog.maartenballiauw.be/post/2011/10/21/Running-Memcached-on-Windows-Azure-for-PHP.aspx">running mamcached on Windows Azure for PHP</a>, a tool targeted towards PHP on Windows users to provide them with the ability to cache outside of their application.
</p>
<blockquote>
While Windows Azure offers a distributed caching layer under the form of the <a href="http://www.microsoft.com/windowsazure/features/caching/">Windows Azure Caching</a>, that components currently lacks support for non-.NET technologies. I've heard there's work being done there, but that's not very interesting if you are building your app today. This blog post will show you how to modify a Windows Azure deployment to run and use <a href="http://memcached.org/">Memcached</a> in the easiest possible manner. Note: this post focuses on PHP but can also be used to setup Memcached on Windows Azure for NodeJS, Java, Ruby, Python...
</blockquote>
<p>
He provides a <a href="http://blog.maartenballiauw.be/file.axd?file=2011%2f10%2fMemcachedScaffolder.phar">phar-based scaffolding</a> you can use to set up the instance and describes two ways of accomplishing it - the "short way" of relying on the scaffolding or the "long way" describing what the scaffolder does behind the scenes (complete with code). For this, you can also <a href="http://blog.maartenballiauw.be/file.axd?file=2011%2f10%2fMemcachedScaffolderSource.zip">download the source</a> and look through it.
</p>]]></description>
      <pubDate>Mon, 24 Oct 2011 21:52:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: There's no reason not to switch to DocBlox]]></title>
      <guid>http://www.phpdeveloper.org/news/16806</guid>
      <link>http://www.phpdeveloper.org/news/16806</link>
      <description><![CDATA[<p>
On DZone.com there's a recent post from <i>Giorgio Sironi</i> sharing his opinion on what should be your choice of automatic documentation generation tools in your PHP app, that there's <a href="http://css.dzone.com/articles/theres-no-reason-not-switch">no reason not to switch to DocBlox</a>.
</p>
<blockquote>
<a href="http://twitter.com/_odino_">Alessandro Nadalin</a> signals these three options for Api documentation generation, the process of extracting Api informations on classes and methods from a folder full of source code: <a href="http://www.phpdoc.org/">phpDocumentor</a>, <a href="http://www.stack.nl/~dimitri/doxygen/">doxygen</a> and <a href="http://www.docblox-project.org/">DocBlox</a>. A PHP tool, faster than doxygen in implementing new features, and actively developed: these are the factors that made me choose DocBlox as my new default Api documentation mean.
</blockquote>
<p>
He covers the installation of the tool (from its PEAR channel), some of the features it comes with, a <a href="http://demo.docblox-project.org/default/">link to their demo</a> and some of his impressions after trying it out on his codebase.
</p>]]></description>
      <pubDate>Thu, 01 Sep 2011 13:35:03 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell's Blog: PHP Static Analysis Tool Usage]]></title>
      <guid>http://www.phpdeveloper.org/news/16668</guid>
      <link>http://www.phpdeveloper.org/news/16668</link>
      <description><![CDATA[<p>
In an informal poll <i>Lorna Mitchell</i> recently asked fellow developers to weigh in on what static analysis tool they used on their code. She's <a href="http://www.lornajane.net/posts/2011/PHP-Static-Analysis-Tool-Usage">posted the results</a> to her blog today with one of the tools being a clear winner.
</p>
<blockquote>
My interest was mostly because I'm working on a book chapter which includes some static analysis content, and there are a couple of these tools that I include in my own builds, but I don't do much with the output of them. However I didn't want to drop anything from the chapter if it was actually a valuable tool and I was just missing the point - pretty much all the tools got a good number of votes though, so I'll be covering all of the [options].
</blockquote>
<p>
According to <a href="http://www.flickr.com/photos/lornajane/5993620876/">her results</a>, the most used tool by developers is the <a href="http://pear.php.net/package/php_codesniffer">PHP_CodeSniffer</a> with the <a href="http://phpmd.org/">PHP Mess Detector</a> and <a href="https://github.com/sebastianbergmann/phpcpd">PHP Copy & Paste Detector</a> tied for second place.
</p>]]></description>
      <pubDate>Wed, 03 Aug 2011 10:50:22 -0500</pubDate>
    </item>
  </channel>
</rss>

