<?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>Fri, 21 Nov 2008 08:56:03 -0600</pubDate>
    <ttl>30</ttl>
    <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[Ilia Alshanetsky's Blog: mail() logging for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/6891</guid>
      <link>http://www.phpdeveloper.org/news/6891</link>
      <description><![CDATA[<p>
In his <a href="http://ilia.ws/archives/149-mail-logging-for-PHP.html">latest blog entry</a>, <i>Ilia Alshanetsky</i> has proposed (and provided) a patch that can help with one of the more abused of the popular PHP functions out there - mail().
</p>
<blockquote>
One of the problems with solving the mail() abuse is figuring out who is doing it or perhaps what script was exploited to do it, since the mail() function does not offer any logging mechanism.
</blockquote>
<p>
To address this problem, he's supplied <a href="http://ilia.ws/uploads/patches/mail_log.txt.gz">this patch</a> you can apply to your source to add two new options to the mail function:
<ul>
<li>enable the addition of the X-PHP-Originating-Script header
<li>mail.log (takes a filename) allows you to enable logging of every single mail() call
</ul>
Check out <a href="http://ilia.ws/archives/149-mail-logging-for-PHP.html">his entry</a> for more details on configuration options and other functionality included with the patch.
</p>]]></description>
      <pubDate>Wed, 13 Dec 2006 16:56:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[JSLabs Blog:  Top 10 PHP frameworks (for 11.28.2006)]]></title>
      <guid>http://www.phpdeveloper.org/news/6787</guid>
      <link>http://www.phpdeveloper.org/news/6787</link>
      <description><![CDATA[<p>
The JSLabs website has <a href="http://www.whenpenguinsattack.com/2006/11/28/top-10-php-frameworks-2/">posted a new list</a> of what they see as the current Top Ten of PHP frameworks out there. It differs slightly from <a href="http://www.whenpenguinsattack.com/2006/07/12/top-10-php-frameworks/">the previous list</a>, including some of the newcomers and dropping some that have fallen behind.
</p>
<p>
Added to the list were:
<ul>
<li><a href="http://www.symfony-project.com/">symfony</a>
<li><a href="http://framework.zend.com/">Zend Framework</a>
<li><a href="http://www.cakephp.org/">CakePHP</a>
<li><a href="http://www.codeigniter.com/">Code Igniter</a>
<li><a href="http://www.pradosoft.com/">Prado</a>
</ul>
And dropped from the list were:
<ul>
<li><a href="http://ez.no/products/ez_publish">eZ publish</a>
<li><a href="http://sourceforge.net/projects/krill/">Krill</a>
<li><a href="http://sourceforge.net/projects/php-booba/">php-booba</a>
<li><a href="http://www.edit-x.com/">edit-x</a>
<li><a href="http://www.binarycloud.com/">Binary Cloud</a>
</ul>
Each of the frameworks in <a href="http://www.whenpenguinsattack.com/2006/11/28/top-10-php-frameworks-2/">the list</a> have a brief description to give you a feel for what the project is all about.
</p>]]></description>
      <pubDate>Wed, 29 Nov 2006 07:37:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Unit Testing in Detail]]></title>
      <guid>http://www.phpdeveloper.org/news/6583</guid>
      <link>http://www.phpdeveloper.org/news/6583</link>
      <description><![CDATA[<p>
Continuing in their effort to help PHP developers keep their code bug-free, DevShed has posted <a href="http://www.devshed.com/c/a/PHP/Unit-Testing-in-Detail/">part two of the series</a> looking at unit testing your applications. Previously they had <a href="http://www.phpdeveloper.org/news/6533">looked at the basics</a> - of they work and what they're for. This time, they dig a little deeper, showing some of the additional features and conditions that <a href="http://phpunit.sourceforge.net/">PHPUnit</a> has to offer.
</p>
<blockquote>
This week, you will learn about running multiple tests simultaneously, creating more informative error messages, and more.
</blockquote>
<p>
They get back into something they mentioned briefly before - packaging tests in a separate archive to keep it out of the main body of code (the same way separating content and display functionality is good). They also talk about how to run more than one test at the same time, a handy feature that lets you make regression tests.
</p>
<p>
They <a href="http://www.devshed.com/c/a/PHP/Unit-Testing-in-Detail/1/">also show</a> how to create more informative error messages and how to manually add more testing conditions for you to check custom bits of code that don't quite fit with the assertNull, assertEquals, and assertFalse crowd.
</p>
<p>
This article is an excerpt from the Sams Publishing book "Advanced PHP Programming" by <i>George Schlossnagle</i>.
</p>]]></description>
      <pubDate>Thu, 26 Oct 2006 09:58:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sitecritic.net: Simple Content Management in PHP Without Database Access]]></title>
      <guid>http://www.phpdeveloper.org/news/5998</guid>
      <link>http://www.phpdeveloper.org/news/5998</link>
      <description><![CDATA[<p>
For all of the content management systems that are out there, most of them have something in common (well, a lot in common, but that's more than I mean) - they all use databases to manage their information. Sometimes, that's just not what a developer really needs. All they want is a simple, light, file-based solution. Well, <a href="http://www.sitecritic.net/articleDetail.php?id=188">this new tutorial</a> from Sitecritic.net can help. It details the creation of a simple file-based management system, including login abilities.
</p>
<blockquote>
<p>
A Content Management System (CMS) allows you to update your website easily without touching anything in the backend. If you are a non-IT person, you will almost always want a CMS for your website because it makes you less dependent on your web designers or developers to add, edit or delete contents in your website.
</p>
<p>
There are many good CMS out there but most of them require some sort of database access in the backend. Many PHP CMS uses mysql or postgres database which resides in the server. Installation and troubleshooting of CMS might require some technical knowledge and server configuration which could be daunting for some.
</p>
</blockquote>
<p>
<a href="http://www.sitecritic.net/articleDetail.php?id=188">The tutorial</a> steps you through the login form first, then creating the template HTML files, before adding in the adding and editing functionality to store the content in the files. The <a href="http://web-developer.sitecritic.net/simple_cms_without_DB.php">full source</a> for the application is also available for download.
</p>]]></description>
      <pubDate>Thu, 10 Aug 2006 07:26:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Joshua Eichorn's Blog: Adding AJAX to a website step by step]]></title>
      <guid>http://www.phpdeveloper.org/news/5981</guid>
      <link>http://www.phpdeveloper.org/news/5981</link>
      <description><![CDATA[<p>
<i>Joshua Eichorn</i> has posted <a href="http://blog.joshuaeichorn.com/archives/2006/08/08/adding-ajax-to-a-website-step-by-step/">this new tutorial</a> to his site today, a detailed look at how to add Ajax to just about any site out there with the help of the <a href="http://pear.php.net/package/HTML_AJAX">HTML_AJAX</a> PEAR package.
</p>
<blockquote>
<p>
When looking at a adding AJAX you have a couple decisions you'll want to make up front. One is what tools your going to use. In the webthumb case thats pretty easy. Webthumb is a simple PHP app and doesn't use a framework, so I need a nice general PHP/AJAX framework that is easy to use, HTML_AJAX fits that need.
</p>
<p>
After picking my tools I need to decide what my goals are. My main focus will be to improve usability, but I also want to use AJAX to make the site seem a bit flashier, so its a bit of a technology demo too.
</p>
</blockquote>
<p>
He uses his own current project, <a href="http://bluga.net/webthumb/">Webthumb</a> as an illustration of his points including <a href="http://blog.joshuaeichorn.com/archives/2006/08/08/adding-ajax-to-a-website-step-by-step/">looks at</a> remoting, a RequestStatus class, exporting a class with the HTML_AJAX package, and finally, making the Ajax calls.
</p>]]></description>
      <pubDate>Tue, 08 Aug 2006 11:59:44 -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>
    <item>
      <title><![CDATA[Matthew Leverton's Blog: How to add a custom CAPTCHA to phpBB2]]></title>
      <guid>http://www.phpdeveloper.org/news/5457</guid>
      <link>http://www.phpdeveloper.org/news/5457</link>
      <description><![CDATA[<p>
In <a href="http://www.matthewleverton.com/howto/phpBB2-captcha.html">this tutorial</a> from <i>Matthew Leverton</i>, there's information on adding a step several phpBB users could benefit from - putting a CAPTCHA image on the comment form to reduce spam issues.
</p>
<quote>
<i>
phpBB is "an open source, flat style, message board written in PHP." Because thousands of people use it with little or no modifications, it is a very popular target for spammers. They can use bots to automatically fill out the registration forms, including "clicking" on the activation link inside e-mails. A CAPTCHA is some sort of challenge that will (in theory) be easy for a human to solve, but hard for a computer to. Typically, they are implemented as a distorted word that the user must enter to complete the form.
</i>
</quote>
<p>
He <a href="http://www.matthewleverton.com/howto/phpBB2-captcha.html">walks the reader through</a> each step of the way, giving shell commands and configuration changes where appropriate. The addition makes use of the <a href="http://www.puremango.co.uk/">freecap</a> CAPTCHA script, making it a simple process of including the library in and adding a few lines to the comment form code inside phpBB.
</p>]]></description>
      <pubDate>Sat, 27 May 2006 11:46:07 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ben Ramsey's Blog: Add Children with SimpleXML]]></title>
      <guid>http://www.phpdeveloper.org/news/5355</guid>
      <link>http://www.phpdeveloper.org/news/5355</link>
      <description><![CDATA[<p>
In <a href="http://benramsey.com/archives/add-children-with-simplexml/">this new post</a> on <i>Ben Ramsey<i/>'s blog today, he shares his experiences with SimpleXML, mentioning specifically some of the undocumented functions that he's noticed.
</p>
<quote>
<i>
I was very excited today while glancing through the code in <a href="http://cvs.php.net/viewcvs.cgi/php-src/ext/simplexml/simplexml.c?view=markup">ext/simplexml/simplexml.c</a> to find some, as of yet, undocumented methods in PHP's <a href="http://www.php.net/SimpleXML">SimpleXMLElement</a> class. This discovery came after I've spent several hours over the last couple of nights banging my head against the desk to figure out a way to create a class that extends SimpleXMLElement and adds a new method for adding a child, which would have to use DOM in order to work-or so I thought.
</i>
</quote>
<p>
Of course, it's wasn't as <a href="http://benramsey.com/archives/add-children-with-simplexml/">easy as it seemed</a>, and <i>Ben</i> soon found some of the limitations of the SimpleXML library. Of course, he did manage to find a way to add new children to the document you're working with (something that normally would have required the intervention of the DOM functionality). Check out <a href="http://benramsey.com/archives/add-children-with-simplexml/">the post</a> for a code example.
</p>]]></description>
      <pubDate>Thu, 11 May 2006 20:03:57 -0500</pubDate>
    </item>
  </channel>
</rss>
