<?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 14:36:57 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Zoe Slattery's Blog: Lateral Thinking]]></title>
      <guid>http://www.phpdeveloper.org/news/11410</guid>
      <link>http://www.phpdeveloper.org/news/11410</link>
      <description><![CDATA[<p>
When it comes to code coverage and untested parts of your application (unit tested, of course), <i>Zoe Slattery</i> <A href="http://zoomsplatter.blogspot.com/2008/11/lateral-thinking.html">has a suggestion</a> that could make your life easier anyway - follow the core PHP developer's example:
</p>
<blockquote>
But - there is another way, and as usual the PHP core developers are showing us the way. The fastest way to improve percentage of code covered is to REMOVE UNTESTED CODE! Accordingly we saw the test coverage of PHP 5.3 increase from about 55% to a little over 70% over the <a href="http://gcov.php.net/viewer.php?version=PHP_5_3&func=graph&mode=Year">summer of 2008</a>. At the same time the lines of code in PHP dropped by about 50KLOC. How can this be?
</blockquote>
<p>
Removing untested code (that's not needed anyway) can reduce unit testing times dramatically and can help you keep your code clean, lean and simple for the upgrades that will come later on.
</p>]]></description>
      <pubDate>Fri, 14 Nov 2008 11:19:54 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Havard Eide's Blog:  SplObjectStorage]]></title>
      <guid>http://www.phpdeveloper.org/news/10662</guid>
      <link>http://www.phpdeveloper.org/news/10662</link>
      <description><![CDATA[<p>
<i>Havard Eide</i> has a <a href="http://eide.org/2008/07/21/splobjectstorage/">recent post</a> to his blog that looks at a part of the Standard PHP Library (SPL) that can be used with objects to store them for later use - SplObjectStorage.
</p>
<blockquote>
In this post I will look at SplObjectStorage: a container that allows to store objects uniquely without the need to compare them one by one.
</blockquote>
<p>
He lets the code to most of the talking, showing how to do the standard operations for a data store - adding objects (both unique and the same), updating objects in the store, checking to see if an object is already added and removing an object from storage.
</p>]]></description>
      <pubDate>Wed, 23 Jul 2008 08:47:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Tim Koschuetzki's Blog: Composing Methods: Remove Assignments to Parameters]]></title>
      <guid>http://www.phpdeveloper.org/news/8193</guid>
      <link>http://www.phpdeveloper.org/news/8193</link>
      <description><![CDATA[<p>
In another part of his "Composing Methods" series, <i>Tim Koschuetzki</i> <a href="http://php-coding-practices.com/refactoring/composing-methods/composing-methods-remove-assignments-to-parameters/">posts about</a> removing assignments to parameters today - working with a temporary variable inside a method rather than the actual passed in value.
</p>
<blockquote>
When your code assigns to a parameter in a function/method, use a temporary variable instead. [...] It will make your code much more readable and prevents by-reference confusion and therefore big problems in the future.
</blockquote>
<p>
His example code uses the illustration of calling a price() method in a class to modify the inputVal value based on other inputted information. His suggestion is to not work with the actual inputVal value passed in (so as to avoid issues if it happens to be passed my reference later), but to work with a temporary variable - $result - inside the method.
</p>]]></description>
      <pubDate>Fri, 06 Jul 2007 10:21:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Philip Olson's Blog: A brief unofficial history about register_globals in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/7679</guid>
      <link>http://www.phpdeveloper.org/news/7679</link>
      <description><![CDATA[<p>
Philip Olson has <a href="http://blog.roshambo.org/archives/A-brief-unofficial-history-about-register_globals-in-PHP.html">posted a brief history</a> of one of the more infamous features of PHP on its fifth birthday - register_globals:
</p>
<blockquote>
It's been a long road and exactly five years (35 releases) since the much discussed and highly controversial PHP directive register_globals has been disabled by default in PHP. After sifting through the mailing list archives, the following set of information has been compiled. Feel free to make additions, corrections, and report register_globals memories!
</blockquote>
<p>
His <a href="http://blog.roshambo.org/archives/A-brief-unofficial-history-about-register_globals-in-PHP.html">list includes</a> some recent "tidbits" about the directive (including the fact that there's still lots of code in the PHP CVS repository that requires register_globals to be on). Following that, there's his brief timeline of the directive's progression - from its infancy as gpc_globals all the way up to more recent events - like its removal from the PHP 6 HEAD CVS versions. With the release of this next major version of PHP, "the beast" can finally be laid to rest.
</p>]]></description>
      <pubDate>Mon, 23 Apr 2007 09:23:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: PHP Security Tip #15 (Remove Temporary Files)]]></title>
      <guid>http://www.phpdeveloper.org/news/7492</guid>
      <link>http://www.phpdeveloper.org/news/7492</link>
      <description><![CDATA[<p>
The Zend Developer Zone has posted <a href="http://devzone.zend.com/node/view/id/1849">security tip #15</a> today, focusing on an easily forgotten aspect of web development (not just in PHP) - forgetting to remove temporary files.
</p>
<blockquote>
As developers, most of us are very messy. I've worked on countless projects and at each either run across or left a trail of diagnostic files laying around. (info.php, test.php, doMe.php, etc.) These tiles, if found by someone with nefarious intent, can leak valuable information about your system.
</blockquote>
<p>
Always remember to remove these types of files...as <i>Cal</i> puts it:
</p>
<blockquote>
It would be a shame to spend all that time securing your application only to leave info.php or worse yet, a "quick piece of code" in test.php that could potentially leak dangerous information about your system. Don't help the ad guys any more than you have to.
</blockquote>]]></description>
      <pubDate>Fri, 23 Mar 2007 09:20:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jonathan Diehl's Wiki: Ajax ActiveTable]]></title>
      <guid>http://www.phpdeveloper.org/news/5978</guid>
      <link>http://www.phpdeveloper.org/news/5978</link>
      <description><![CDATA[<p>
<i>Jonathan Diehl</i> has submitted a new tutorial today about the creation (and demonstration) of an <a href="http://wiki.donttouchme.org/index.php/AJAX_ActiveTable">Ajax ActiveTable</a> with a little help from the Sajax library.
</p>
<blockquote>
The ActiveTable library creates an editable HTML table from a MySQL database table. The ActiveTable library consists of two classes and a few lines of JavaScript, embedded in a typical environment of a php website. The AJAX calls are realized using the <a href="http://www.modernmethod.com/sajax">Sajax Toolikit</a>, which must be downloaded and installed separately.
</blockquote>
<p>
The functionality allows the user to both create and remove rows of data from the database directly with a few simple calls back to a server-side handler to do the work. It can also <a href="http://wiki.donttouchme.org/index.php/AJAX_ActiveTable">dynamically create</a> a table for the MySQL data it's looking at to make setup even easier.
</p>
<p>
The best part? The code for the project is <a href="http://www.donttouchme.org/files/activetable.tgz">ready for download</a> to be used right away.
</p>]]></description>
      <pubDate>Tue, 08 Aug 2006 06:18:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[WeberDev.com: User Authentication With patUser (Part 2)]]></title>
      <guid>http://www.phpdeveloper.org/news/5612</guid>
      <link>http://www.phpdeveloper.org/news/5612</link>
      <description><![CDATA[<p>
From WeberDev today, there's <a href="http://www.weberdev.com/ViewArticle/460">part two</a> of their "User Authentication with patUser" series, this timie with a focus on managing user data with other patUser functionality.
</p>
<blockquote>
patUser can do a lot more than just handle user authentication - the
library also comes with a large number of methods designed to make the task of managing user data as simple and efficient as possible. Over the course of this second installment, I'm going to show you how these methods work, and how they can be used to quickly create scripts to view, add, edit and delete users (and user attributes) from your database. Keep reading!
</blockquote>
<p>
They build on the <a href="http://www.phpdeveloper.org/news/5485">previous article</a>'s foundation (and database) to insert some new user information for manipulation and output. They then give some sample code to pull all of the users from the database, pull details for each user (including additional fields created in a database update), and limiting the results based on one of the fields.
</p>
<p>
They also <a href="http://www.weberdev.com/ViewArticle/460">include</a> another database table and the needed code to help organize the users into groups. They also include the functionality to add and remove groups and users as well as adding and removing people to/from groups directly from the patUser setup. Finally, they finish it with a few "real life" examples to help it all make sense together.
</p>]]></description>
      <pubDate>Sat, 17 Jun 2006 08:09:51 -0500</pubDate>
    </item>
  </channel>
</rss>
