<?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>Thu, 04 Dec 2008 13:29:44 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Stefan Priebsch's Blog: TDD in a self-experiment]]></title>
      <guid>http://www.phpdeveloper.org/news/10489</guid>
      <link>http://www.phpdeveloper.org/news/10489</link>
      <description><![CDATA[<p>
<i>Stefan Priebsch</i> has posted <a href="http://inside.e-novative.de/archives/121-TDD-in-a-self-experiment.html">an overview</a> of some of his experiences with test-driven development in PHP. Specifically, he talks about it in the context of a small CMS he's been working up.
</p>
<blockquote>
The CMS I am using is a small engine that puts together (potentially multi-lingual) page content, templates, and a site structure, and creates semi-static pages. It does not have a sleek GUI frontend, because by nature I am not afraid of a text editor, and most of the time get quicker results by just writing HTML than fighting with one of these what-you-see-is-what-you-might-get HTML editors.
</blockquote>
<p>
He talks about the configuration files containing the app's settings (inspired by the YAML Symfony uses) and his work towards the "best matching pattern" algorithm. This is where the TDD came in - he cheated a little with some base classes (tests first!) and then came up with the tests for checking template names and more complex template interactions.
</p>
<p>
<a href="http://inside.e-novative.de/archives/121-TDD-in-a-self-experiment.html">The post</a> includes drops of code here and there as well - examples of the unit tests and of the configuration files.
</p>]]></description>
      <pubDate>Thu, 26 Jun 2008 07:57:32 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Padraic Brady's Blog: The PHPSpec Zend Framework App Testing Manifesto: Preamble]]></title>
      <guid>http://www.phpdeveloper.org/news/9416</guid>
      <link>http://www.phpdeveloper.org/news/9416</link>
      <description><![CDATA[<p>
<i>Padraic Brady</i> has <a href="http://blog.astrumfutura.com/archives/335-The-PHPSpec-Zend-Framework-App-Testing-Manifesto-Preamble.html">posted a manifesto</a> of sorts about the work that he's been doing on his <a href="http://dev.phpspec.org/manual/en">PHPSpec</a> library and trying to work it into the approval process for the Zend Framework.
</p>
<blockquote>
I'll be attempting to pound the Zend Framework into submission so I can apply Behaviour-Driven Development (BDD) using <a href="http://dev.phpspec.org/manual/en">PHPSpec</a> when I write a Controller. Why? Because I feel like it, and it gives me an excuse to promote one possible incarnation of PHPMock and the PHPSpec Zend Framework extension. See? Perfectly reasonable selfishness!
</blockquote>
<p>
He hopes to move it past the typical test-driven development process that PHPUnit offers and "kick your ass into high-TDD gear" without having to have worked much with it before then (the key is simplicity).
</p>
<p>
He includes some code examples (how it should flow) and describes some of the challenges that he's coming across so far, specifically with the way that the Zend Framework works with the Controllers and what he wants to accomplish.
</p>]]></description>
      <pubDate>Mon, 14 Jan 2008 10:22:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: Speaking at Conference PHP Quebec 2008]]></title>
      <guid>http://www.phpdeveloper.org/news/9052</guid>
      <link>http://www.phpdeveloper.org/news/9052</link>
      <description><![CDATA[<p>
<i>Sebastian Bergmann</i> <a href="http://sebastian-bergmann.de/archives/718-Speaking-at-Conference-PHP-Quebec-2008.html">points out</a> that he will be speaking at the upcoming PHP Conference in Quebec (2008). He will be presenting three talks/tutorials:
</p>
<ul>
<li>Test-Driven Object-Oriented Programming - Learning and Understanding (with Marcus Borger): This PHPLab is an in-depth introduction to object-oriented and pattern-based programming using PHP 5. You will learn everything necessary to write your own cutting-edge components and applications - and of course how to use and extend components from other people or companies.
<li>PECL: The PHP Language Workbench: A look into PECL shows how flexible the language core of PHP, the Zend Engine, is. 
<li>Graph-Oriented Programming with PHP: This session presents the eZ Components' workflow engine, its possible applications and the underlying principles and techniques.
</ul>
<p>
You can find out more about the conference from <a href="http://conf.phpquebec.com/en/">their main website</a> (including other speakers that will be presenting) as well as <a href="http://conf.phpquebec.com/en/tarif">registering</a> to reserve your space for the March 12th-14th conference.
</p>]]></description>
      <pubDate>Thu, 15 Nov 2007 11:13:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Paul Jones' Blog: TDD, Test-First, and Ravioli Code]]></title>
      <guid>http://www.phpdeveloper.org/news/8272</guid>
      <link>http://www.phpdeveloper.org/news/8272</link>
      <description><![CDATA[<p>
With test-driven development being promoted as one thing that can help encourage better coding, most developers are looking into its use and how it can help. <i>Paul Jones</i> takes an opposite approach, though, and looks at how it <a href="http://paul-m-jones.com/blog/?p=250">could cause "ravioli code"</a> in an application.
</p>
<blockquote>
I know that test-first and <a href="http://en.wikipedia.org/wiki/Test-driven_development">test-driven development (TDD)</a> are popular methodologies these days, but something about those processes has always met with a level of mental resistance from me. Even though it sounds good in theory, I have been intuitively wary of the "test-first" mentality for some reason. My own approach is closer "remember to code so you can test it later" and then "test-last" after the API is mostly stable.
</blockquote>
<p>
He <a href="http://paul-m-jones.com/blog/?p=250">includes quotes</a> from Slashdot comment quotes from <a href="http://developers.slashdot.org/comments.pl?sid=236721&cid=19326041">AuMatar</a> and <a href="http://developers.slashdot.org/comments.pl?sid=236721&cid=19330355">dkf</a>. Be sure to check out the comments on the post (17 of them at the time of this posting) for some opinions from others about test-driven development and how it can affect your code.
</p>
<p>
Blogs also mentioning this discussion:
</p>
<ul>
<li><a href="http://www.reiersol.com/blog/index.php?op=ViewArticle&articleId=22&blogId=1">PHP in Action</a>
<li><a href="http://paul-m-jones.com/blog/?p=251">another post</a> from <i>Paul</i> on some of the responses
</ul>]]></description>
      <pubDate>Wed, 18 Jul 2007 08:43:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Dagfinn Reiersol's Blog: Fake it and raise your IQ]]></title>
      <guid>http://www.phpdeveloper.org/news/7277</guid>
      <link>http://www.phpdeveloper.org/news/7277</link>
      <description><![CDATA[<p>
On the "PHP in Action" blog, <i>Dagfinn Reiersol</i> has <a href="http://www.reiersol.com/blog/index.php?op=ViewArticle&articleId=13&blogId=1">posted some ideas</a> about developing PHP applications (really, any applications) from scratch - by faking it.
</p>
<blockquote>
<p>
So  where and how on earth do you  start?  Let's say we know one thing about the result; call it the known fact. Do we start by  making educated guesses about what should be in the black box? A lot of development is like that.
</p>
<p>
Enough of this philosophical mumbo-jumbo; what does it mean in practice? Well, it's test-driven development, and more specifically, it's what Kent Beck calls the Fake It patttern. You implement a test for the result, then you hard code the result. It's an absolutely weird idea that's magical in its effect because it get you started. And as the German expression goes, aller Anfang ist schwer--all beginnings are difficult.
</p>
</blockquote>
<p>
He <a href="http://www.reiersol.com/blog/index.php?op=ViewArticle&articleId=13&blogId=1">illustrates the point</a> with a set of code examples - one side being the unit test (written first, of course) and the other the actual code. All it does is set a URL to a variable inside a class, but the point is made. </p>
<p>
Starting at the high level is good when you know the full scope of the project, but that's not always a possibility. This is a good alternative to getting started without causing too many issues down the road.
</p>]]></description>
      <pubDate>Wed, 14 Feb 2007 10:33:00 -0600</pubDate>
    </item>
  </channel>
</rss>
