<?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 20:32:19 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Artur Ejsmont's Blog: A few words on bugs and software quality]]></title>
      <guid>http://www.phpdeveloper.org/news/17519</guid>
      <link>http://www.phpdeveloper.org/news/17519</link>
      <description><![CDATA[<p>
In <a href="http://artur.ejsmont.org/blog/content/a-few-words-on-bugs-and-software-quality">this new post</a> to his blog <i>Artur Ejsmont</i> shares some of his thoughts on bugs and how they can effect the quality of your software. He touches on topics like handling bug reports, how random code changes effect them and how effective a code review can be.
</p>
<blockquote>
From time to time I see bugs in the code and I start thinking "really? is it possible that no one noticed that bug before? am i the first person to see this code?". I thought it might be worth writing a little post on what helps me to deal with bugs and software quality in general and what are the common pitfalls in developer's thought process. Although it is not a very extensive post i hope it may inspire some developers to try new approaches.
</blockquote>
<p>
Other topics he offers for consideration involve the fact that bugs will never fix themselves (they might disappear in a refactor though), that the bug is almost never in the language/data source's code and how automated (unit) testing can help to find new bugs before they're released to the users.
</p>]]></description>
      <pubDate>Wed, 08 Feb 2012 13:50:40 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: PHP 5.4 Features: Shall you Upgrade to the newer PHP Version?]]></title>
      <guid>http://www.phpdeveloper.org/news/17471</guid>
      <link>http://www.phpdeveloper.org/news/17471</link>
      <description><![CDATA[<p>
Over on the PHPClasses.org blog today there's <a href="http://www.phpclasses.org/blog/post/173-PHP-54-Features-Shall-you-Upgrade-to-the-newer-PHP-Version.html">a new post</a> looking at the next major upcoming PHP version (5.4), what it comes with and why you might want to make the upgrade.
</p>
<blockquote>
PHP 5.4.0 is planned to be released on February, 2 2012. By the time you are reading this, it may already been out. It is a result of many months of development. Many features were proposed for this release. Some made into this version, others did not make it at least for now. So, now you may be wondering which interesting features really made it. Let me tell you more about some of the more interesting features present in this release.
</blockquote>
<p>
The article mentions some of the usual major features that can be found in just about every "in PHP 5.4" list - traits, the built-in web server, binary notation for integers - but it also includes some of the features that didn't make the cut this time (like annotations and the inclusion of the APC caching extension). Also included are questions to ask to see if the upgrade is for you like:
</p>
<ul>
<li>Do you need the new features?
<li>Do you need the updates now?
<li>Try it and test it in dev first - does it meet your needs or cause other bugs?
</ul>
<p>
The planned release for PHP 5.4 is during the first week of February (2012). Additionally, if you'd like to give the PHP development group some help testing out the latest Release Candidate, you can <a href="https://plus.google.com/113232754375212792615/posts/23fFbtNobsw">find instructions here</a>.
</p>]]></description>
      <pubDate>Tue, 31 Jan 2012 10:05:03 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Codeception Blog: Introduction to Codeception]]></title>
      <guid>http://www.phpdeveloper.org/news/17447</guid>
      <link>http://www.phpdeveloper.org/news/17447</link>
      <description><![CDATA[<p>
On the Codeception blog there's <a href="http://codeception.com/01-20-2012/starting-acceptance.html">an introduction to the Codeception tool</a>, a behavior-driven framework written in PHP (in the spirit of <a href="http://behat.org/">Behat</a>).
</p>
<blockquote>
How often do you see PHP projects with no line of test written? From my experience, this situation happens quite often. We should state the unpleasant fact that tests are not so popular around the PHP world. Surely, the advanced developers with 5+ years of experience in PHP and other programming languages understand importance of testing and PHPUnit usage. But juniors and seniors are just skipping testing and, therefore, produce unstable web applications.
</blockquote>
<p>
A code example of the framework in use is included in the post - a test on a class using methods like "wantTo", "amOnPage", "fillField" and "click". The <a href="http://codeception.com/install">installation</a> is pretty simple and it gives you a quick way to start working on acceptance, functional and unit tests. In BDD fashion, the tests are written in a more "natural language" than traditional <a href="http://phpunit.de">unit tests</a> making them easier for the non-developers (like QA) to write. Their example loads a page, fills in some form fields and submits the form to check the result.
</p>]]></description>
      <pubDate>Wed, 25 Jan 2012 10:19:59 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: Why does everything need to be integrated into a framework?]]></title>
      <guid>http://www.phpdeveloper.org/news/17435</guid>
      <link>http://www.phpdeveloper.org/news/17435</link>
      <description><![CDATA[<p>
In <a href="http://codeutopia.net/blog/2012/01/21/why-does-everything-need-to-be-integrated-into-a-framework/">this new post</a> to his blog <i>Jani Hartikainen</i> wonders if "everything needs to be integrated into a framework".
</p>
<blockquote>
There is occasionally people asking about things such as "Is there an integration for X in framework Y?" Then they are disappointed when it isn't, acting as if it's a really bad thing. But why do things need to be integrated to begin with?
</blockquote>
<p>
He points out that other frameworks (ex. Ruby on Rails) have a lot of things integrated, but he doesn't agree that this should be the standard. He suggests that, by not having tools that are tightly coupled with the framework you're using, you open yourself up to a wider, possibly better range of external tools. 
</p>
<blockquote>
One could argue that integrated libraries give you a productivity boost. While it may be so, I think the main boost you get is the very first steps: It's easier to get started, but after that the benefit fades. In the long run, it may even turn into a poor investment in general, as you could have learned a general purpose tool instead.
</blockquote>]]></description>
      <pubDate>Mon, 23 Jan 2012 13:04:22 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP.net: PHP 5.4 beta1 released]]></title>
      <guid>http://www.phpdeveloper.org/news/16913</guid>
      <link>http://www.phpdeveloper.org/news/16913</link>
      <description><![CDATA[<p>
PHP.net has <a href="http://www.php.net/index.php#id2011-09-27-1">officially announced</a> the release of the first official beta of the PHP 5.4.x series today - <a href="http://www.php.net/downloads.php">PHP 5.4 beta1</a>.
</p>
<blockquote>
The PHP development team is proud to announce the first <a href="http://qa.php.net/">beta release</a> of PHP 5.4. PHP 5.4 includes new language features and removes several legacy (deprecated) behaviors. Windows binaries can be downloaded from the <a href="http://windows.php.net/qa/">Windows QA site</a>.
</blockquote>
<p>
Features added in this beta include several bug fixes, the addition of a callable typehint, a switch to timezone guessing (UTC is assumed if not set) and the mysql/mysqli/pdo_mysql extensions now use mysqlnd by default. There's a lot of smaller changes too - check out the <a href="http://www.php.net/releases/NEWS_5_4_0_beta1.txt">latest NEWS file</a> for the complete list.
</p>]]></description>
      <pubDate>Tue, 27 Sep 2011 10:52:20 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[H&aring;vard Eide's Blog: ChaosMonkey]]></title>
      <guid>http://www.phpdeveloper.org/news/16873</guid>
      <link>http://www.phpdeveloper.org/news/16873</link>
      <description><![CDATA[<p>
<i>H&aring;vard Eide</i> has a new post sharing a tool he's created (based on some ideas presented in <a href="http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html">this netflix blog post</a>) for testing a web service. Specifically, his tool helps you test a web service developed with the <a href="http://www.slimframework.com/">Slim</a> framework.
</p>
<blockquote>
I just pushed a example on how to create a <a href="https://github.com/haavardeide/ChaosMonkey>ChaosMonkey</a> with the <a href="http://www.slimframework.com/">Slim framework</a> to github. The idea is that whenever you create a webservice with the Slim framework (which is really simple) you rarely test for failure, the ChaosMonkey class will help you to do just that. When initialized with the <a href="https://github.com/haavardeide/ChaosMonkey/blob/master/ChaosMonkey/Chaos/AbsoluteChaos.php">AbsoluteChaos</a> plugin it will randomly kill the webservice with exceptions, garbage to the output, or just run the service for you without failure at all.
</blockquote>
<p>
His plugin does a lot of things right now, but it's easy to extend with your own failure types - like his suggested "networkSleep" or something that could kill the connection to MySQL. He includes a <a href="http://eide.org/2011/09/18/chaosmonkey/">code snippet in the post</a> of how to hook Slim and ChaosMonkey together for some testing fun.
</p>]]></description>
      <pubDate>Mon, 19 Sep 2011 09:11:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Decal CMS Blog: Testing your website before launching: how to let content drive design (Part 1)]]></title>
      <guid>http://www.phpdeveloper.org/news/16841</guid>
      <link>http://www.phpdeveloper.org/news/16841</link>
      <description><![CDATA[<p>
New from the Decal blog today there's a <a href="http://www.decalcms.com/page/Testing_your_website_before_launching_how_to_let_content_drive_design">general post about testing</a>, not writing tests for your code but testing methods for your site as a whole (like A/B testing). This is the first part of a series.
</p>
<blockquote>
For a long time, we here at Working Software have been strong believers in the "content precedes design" philosophy, as famously espoused by <a href="http://www.zeldman.com/2008/05/06/content-precedes-design/">Jeffrey Zeldman</a> and summarised here on <a href="http://uxmyths.com/post/718187422/myth-you-dont-need-the-content-to-design-a-website">UX Myths</a>. [...] We are relaunching this website so we'd gone through the process of creating our "content first" wireframe using Decal Mockups.
</blockquote>
<p>
They go through their entire process - how they decided what to test on the site, the methods they chose for the testing (including <a href="http://pickfu.com/">PickFu</a> and <a href="http://feedbackarmy.com/">Feedback Army</a>) and some of the results of the feedback from each.
</p>]]></description>
      <pubDate>Fri, 09 Sep 2011 13:05:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Alessandro Nadalin's Blog: Behaviour what?]]></title>
      <guid>http://www.phpdeveloper.org/news/16789</guid>
      <link>http://www.phpdeveloper.org/news/16789</link>
      <description><![CDATA[<p>
In a recent post to his blog <i>Alessandro Nadalin</i> looks at a <a href="http://www.odino.org/378/behaviour-driven-development-in-php">different approach to development</a> than the usual code-first, ask questions later style, behavior-driven development, and a tool that can help you follow this method - <a href="http://behat.org">Behat</a>.
</p>
<blockquote>
Although this requirement is not mandatory, BDD's power is leveraged by using stories. It basically assumes that instead of focusing on tests, we should start our development process writing down a story that a parser can translate into a test (a customer cares about features, not tests) a programmer can implement in order to verify that our software respects that story.
</blockquote>
<p>
He talks about installing Behat <a href="http://pear.behat.org/">via PEAR</a>, how it can integrate with Symfony (1.4) and an example of a sample story/test file that checks a few things against a basic page. He also points out an interesting and quite useful feature of Behat - outputting the tests in a HTML-formatted result that makes for easy reading by non-developers.
</p>]]></description>
      <pubDate>Tue, 30 Aug 2011 09:22:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[SkyTechGeek.com: 10 Exceptional Tools For Website Testing]]></title>
      <guid>http://www.phpdeveloper.org/news/16760</guid>
      <link>http://www.phpdeveloper.org/news/16760</link>
      <description><![CDATA[<p>
Sometimes a little (external) testing of your website is in order and <i>Gagan Chhatwal</i> has posted <a href="http://skytechgeek.com/2011/08/10-exceptional-tools-for-website-testing/">his list of ten tools</a> you can use to check everything from  how much load the site can take to what can be done to optimize the load time.
</p>
<blockquote>
When maintaining or running a website , Webmasters need to keep in mind that one of the pertinent issues they will need to focus on is :Website Testing, which is not only vital for the website itself but for the user as well and one should not overlook its importance. [We have] collected some vital and free website testing tools which will help Webmasters in testing their sites thus saving users to conduct time consuming needless searches in finding the best resources pertaining to Web related tools and info.
</blockquote>
<p>Among the tools on the list are services like:</p>
<ul>
<li><a href="http://loadimpact.com/">Load Impact</a>
<li><a href="https://browsermob.com/performance-testing">Browser Mob</a>
<li><a href="http://host-tracker.com/">Host Tracker</a>
<li><a href="http://builtwith.com/">Built With</a>
<li><a href="http://online.htmlvalidator.com/php/onlinevallite.php">CSE HTML validator</a>
</ul>
<p>
Most of these resources are free services, if not then they have a trial where you can see if it's a good fit.
</p>]]></description>
      <pubDate>Tue, 23 Aug 2011 13:25:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ibuildings techPortal: Behavior Driven Development in PHP With Behat]]></title>
      <guid>http://www.phpdeveloper.org/news/16640</guid>
      <link>http://www.phpdeveloper.org/news/16640</link>
      <description><![CDATA[<p>
On the Ibuildings techPortal today there's a new post from <i>Marcello Duarte</i> looking at a different sort of software development methodology - behavior driven development - and <a href="http://techportal.ibuildings.com/2011/07/27/behaviour-driven-development-in-php-with-behat/">using Behat in a sample project</a>.
</p>
<blockquote>
Because of the emphasis on test, developers tend to focus on class structure as opposed to how the system should behave. Ironically the focus on test moves developers away from TDD as it was intended. Quite often, because of the tendency to try to test everything, our tests end up tightly coupled with our implementation. If we change our code, we break our tests, even if the behaviour remains unchanged.
</blockquote>
<p>
He talks about the option to use the <a href="http://agiledox.sourceforge.net/">agiledox</a> method in PHPUnit tests and how it can help with test output readability. He takes it a step further with a look at Gherkin, the language for the <a href="http://cukes.info/">Cucumber</a> testing tool in Ruby. The next obvious step in the process comes with <a href="http://behat.org/">Behat</a>, a sort of PHP version of the Cucumber testing tool. He includes a sample project and shows how to update it with sample steps and create a few basic tests to check video rental information.
</p>]]></description>
      <pubDate>Wed, 27 Jul 2011 10:48:20 -0500</pubDate>
    </item>
  </channel>
</rss>

