<?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>Sat, 18 May 2013 22:01:28 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[ServerGrove Blog: Interesting symfony plugins: sfBehatPlugin]]></title>
      <guid>http://www.phpdeveloper.org/news/15160</guid>
      <link>http://www.phpdeveloper.org/news/15160</link>
      <description><![CDATA[<p>
On the ServerGrove blog there's <a href="http://blog.servergrove.com/2010/09/20/interesting-symfony-plugins-sfbehatplugin/">a new post</a> spotlighting one of the Symfony plugins they think is interesting - the <a href="http://www.symfony-project.org/plugins/sfBehatPlugin">sfBehatPlugin</a>, an interface into the <a href="http://everzet.com/Behat/">Behat</a> system for behavior-driven development.
</p>
<blockquote>
Quality assurance (QA) is one of the most difficult things to implement around software development. Most of time it is left for the final phase of development and very often overlooked entirely. As many experienced web development teams already know, QA needs to be part of the development process from the get-go. [...] Behavior development/testing is just one aspect of quality assurance. 
</blockquote>
<p>
They briefly touch on the installation of the plugin (Symfony plugins are usually pretty easy to get set up) and <a href="http://everzet.com/sfBehatPlugin/#install">link to the project's homepage</a> for more references on some of the basics of using it to act as a browser, parse the response and use forms on a page.
</p>]]></description>
      <pubDate>Tue, 21 Sep 2010 08:09:57 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Keith Casey's Blog: Event Driven Programming]]></title>
      <guid>http://www.phpdeveloper.org/news/14569</guid>
      <link>http://www.phpdeveloper.org/news/14569</link>
      <description><![CDATA[<p>
In a new post to his blog today <i>Keith Casey</i> talks about something that might be a bit foreign to some PHP developers out there <a href="http://caseysoftware.com/blog/event-driven-programming">event driven programming</a>. He relate it to the Flex world where it's more commonly used.
</p>
<blockquote>
When you initially dive into the world of <a href="http://www.adobe.com/products/flex/">Flex development</a>, most PHP'ers will quickly notice something weird. We're out of the world of Request/Response that we know and understand and into an odd world of Events, Listeners, and <a href="http://en.wikipedia.org/wiki/Publish/subscribe">Publishers/Subscribers</a> where things just don't play well together.
</blockquote>
<p>
He talks about the Observer design pattern and how it works to provide an interface to other objects who are listening in and waiting for events to happen (he uses an airline analogy). He also gives a more concrete illustration - uploading a file - and how the events would be used to handle each part of the process.
</p>]]></description>
      <pubDate>Thu, 27 May 2010 11:05:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Padraic Brady's Blog: A Domain Specific Language for Behaviour Driven Development (BDD) in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10646</guid>
      <link>http://www.phpdeveloper.org/news/10646</link>
      <description><![CDATA[<p>
<i>Padraic Brady</i> has <a href="http://blog.astrumfutura.com/archives/386-A-Domain-Specific-Language-for-Behaviour-Driven-Development-BDD-in-PHP.html">posted about</a> a part of his <a href="http://www.phpspec.org/">PHPSpec</a> library, the domain specific language.
</p>
<blockquote>
PHPSpec implements a domain specific language (DSL) in PHP for specifying the behaviour of functional units such as methods and objects. The purpose of a DSL was to move away from the xUnit style declaration of tests towards a specification language centred on describing behaviour.
</blockquote>
<p>
He illustrates with a bowling example - described with a sample class (with a itShouldScore0ForGutterGame test) and how to use it to fit his proposal:
</p>
<blockquote>
My proposal therefore is to re-implement the current programming language DSL as a specification language - i.e. a new (extremely limited and narrow!) language capable of being parsed by PHPSpec into its PHP equivalent. [...] Using a specification DSL, we can simply ignore the existence of classes in PHP (well, the pretense is nice). Instead the DSL would incorporate a syntax for denoting shared behaviours.
</blockquote>]]></description>
      <pubDate>Mon, 21 Jul 2008 11:13:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Designing Klingon Warships Using Behaviour Driven Development]]></title>
      <guid>http://www.phpdeveloper.org/news/9608</guid>
      <link>http://www.phpdeveloper.org/news/9608</link>
      <description><![CDATA[<p>
The Zend Developer Zone has <a href="http://devzone.zend.com/article/3082-Designing-Klingon-Warships-Using-Behaviour-Driven-Development">another new tutorial</a> from <i>Padraic Brady</i> talking about testing your applications (i.e. unit tests). In this new article, he expands on his <a href="http://devzone.zend.com/article/2772-An-Introduction-to-the-Art-of-Unit-Testing-in-PHP">previous one</a> and dives a bit deeper into the behaviour-driven development process.
</p>
<blockquote>
In this article, I introduce a TDD related practice called Behaviour-Driven Development which has been gathering attention for over a year and gaining converts (like me!).
</blockquote>
<p>
He <a href="http://devzone.zend.com/article/3082-Designing-Klingon-Warships-Using-Behaviour-Driven-Development">briefly covers</a> what BDD is and how it can be used to solidify code against issues that might come up down the road (and how it compares to test-driven development). Some sample code/tests are included to give you a better idea of how it all fits together - a set of scenarios for any given "story". True to the title, <i>Padraic</i> writes his tests around the construction of a Klingon Bird of Prey ship. 
</p>]]></description>
      <pubDate>Mon, 11 Feb 2008 15:34:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Padraic Brady's Blog: Any Behaviour-Driven Development Tools for PHP?]]></title>
      <guid>http://www.phpdeveloper.org/news/8690</guid>
      <link>http://www.phpdeveloper.org/news/8690</link>
      <description><![CDATA[<p>
In a <a href="http://blog.astrumfutura.com/archives/306-Any-Behaviour-Driven-Development-Tools-for-PHP.html">new post</a> today, <i>Padraic Brady</i> asks the community for any kind of input as to what they've seen for behaviour-driven development in PHP:
</p>
<blockquote>
Behavior-Driven Development (BDD) is an evolution of Test-Driven Development (TDD) which pushes the focus away from the concept of testing to one of specifying behaviours in a form more easily understood.
</blockquote>
<p>
In asking about any of the tools that might happen to be out there, he also <a href="http://blog.astrumfutura.com/archives/306-Any-Behaviour-Driven-Development-Tools-for-PHP.html">gives an example</a> (from a Ruby perspective) on how the behaviour-driven method is put into practice. The code describes the behaviour by what "it should" do and evaluates based on that.
</p>]]></description>
      <pubDate>Thu, 20 Sep 2007 08:48:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jason Sweat's Blog: PHPLondon]]></title>
      <guid>http://www.phpdeveloper.org/news/6444</guid>
      <link>http://www.phpdeveloper.org/news/6444</link>
      <description><![CDATA[<p>
In his <a href="http://blog.casey-sweat.us/?p=72">latest post</a>, <i>Jason Sweat</i> shares some of his experiences (and some code) surrounding his trip out to a <a href="http://www.phplondon.org/wiki/Meeting2006October5">PHPLondon meeting</a> to be a guest speaker.
</p>
<p>
He talks about the location of the meeting (a pub named "The Hope") and some of the notes about his talk. The talk was a modified version of his Test Driven Development talk (given previously at php|tek). He changed it to appeal to people who hadn't really used unit testing in their development to explain why it's important. He includes <a href="http://blog.casey-sweat.us/?p=72">the bit of sample code</a> he used to illustrate his point - a test designed to ensure that the daily salary was being calculated properly. The presentation can be <a href="http://blog.casey-sweat.us/img/phplondon-tdd.ppt">downloaded here</a> as a PowerPoint file.
</p>]]></description>
      <pubDate>Mon, 09 Oct 2006 07:53:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Felix Geisendorfer's Blog: Test Driven Development in Real World Apps]]></title>
      <guid>http://www.phpdeveloper.org/news/6260</guid>
      <link>http://www.phpdeveloper.org/news/6260</link>
      <description><![CDATA[<p>
<i>Felix Geisendorfer</i> shares, in <a href="http://www.thinkingphp.org/2006/09/10/test-driven-development-in-real-world-apps/">this new post</a> to the ThinkingPHP blog, some of his experiences with writing his code using test driven development.
</p>
<blockquote>
So far I've had tons of fun trying to create php code using test driven development. It caused my code to become a lot more structured/consistent because writing the tests shows you interfaces problems right away. This is because the process of writing the test forces you to think a lot more about *how* you want to use some class / piece of code vs. your traditional "how can I get task x done"-thinking.
</blockquote>
<p>
He <a href="http://www.thinkingphp.org/2006/09/10/test-driven-development-in-real-world-apps/">also points out</a> another benefit - it makes refactoring the code even easier (so there's more of a likelyhood that you'll use it again and again). He talks specifics about a library that he's been working on and the processes he's gone through to make things work with the testing versus his normal development cycle.
</p>]]></description>
      <pubDate>Wed, 13 Sep 2006 07:31:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jim Plush's Blog: The Event Driven Mobile Application on Minimo]]></title>
      <guid>http://www.phpdeveloper.org/news/5494</guid>
      <link>http://www.phpdeveloper.org/news/5494</link>
      <description><![CDATA[<p>
<i>Jim Plush</i> has an <a href="http://www.litfuel.net/plush/?postid=136">interesting post</a> today (complete with a video) about a project he's worked up for sending messages to remote devices via a web connetion and a JSON encoded message.
</p>
<quote>
<i>
I have my PDA resting on my laptop and on my laptop I have firefox open with a local PHP page. The PHP page has a couple checkboxes that when clicked and the submit button pressed will actually open up a socket connection to the IP address I specified in the text field above. The script then sends a JSON encoded event string of data. That string gets read in by a custom minimo/firefox extension I wrote that listens on a particular port for incoming connections, reads in any data sent then forwards that on to user land javascript. By user land javascript I mean javascript written on a regular webpage, not in the extension itself.
</i>
</quote>
<p>
The <a href="http://www.litfuel.net/plush/?postid=136">video linked to</a> in the post shows more clearly how this functionality works, and also includes a bit more detail on the whole process, including a graphical representation of how the entire process works. Ajax wasn't actually used to send the message in this particular application - it's all just made with regular sockets.
</p>]]></description>
      <pubDate>Fri, 02 Jun 2006 05:46:20 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[O'Reilly: Designing a database-driven PHP App? Don't Forget the Data!!]]></title>
      <guid>http://www.phpdeveloper.org/news/5274</guid>
      <link>http://www.phpdeveloper.org/news/5274</link>
      <description><![CDATA[<p>
On the O'Reilly Network's PHP blog today, there's <a href="http://www.oreillynet.com/onlamp/blog/2006/04/designing_a_databasedriven_php.html?CMP=OTC-6YE827253101&ATT=Designing+a+database-driven+PHP+App+Don+t+Forget+the+Data">a new post</a> <i>bk jones</i> that looks at the other side of application design, from the data's perspective.
</p>
<quote>
<i>
<p>
If you have a sourceforge account, and are on your way to becoming the best thing to happen to the web since Yahoo or Google, then I beg of you to put a call out for people who understand database design fundamentals.
</p>
<p>
Here's the story: If you're a PHP developer, I don't really want you to learn how to design a database. No, really. I don't. I want you to write PHP. There are few people who do both things extremely well, because both take a good bit of time. If you're a PHP developer, I want you to write code that'll make my head spin. However, the path to greatness is to be conscious of your own ignorance - so just acknowledge that you've never done or studied database design, and go find someone who has!
</p>
</i>
</quote>
<p>
He <a href="http://www.oreillynet.com/onlamp/blog/2006/04/designing_a_databasedriven_php.html?CMP=OTC-6YE827253101&ATT=Designing+a+database-driven+PHP+App+Don+t+Forget+the+Data">mentions</a> three misconceptions to consider and avoid when developing a PHP application:
<ul>
<li>The interface determines database design
<li>"I only need a small, simple database"
<li>"More tables makes for harder coding"
</ul>
</p>]]></description>
      <pubDate>Mon, 01 May 2006 07:18:06 -0500</pubDate>
    </item>
  </channel>
</rss>
