<?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>Tue, 07 Oct 2008 10:14:29 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Midstride Solutions Blog: 5 tips and tools to develop php applications fast]]></title>
      <guid>http://www.phpdeveloper.org/news/11134</guid>
      <link>http://www.phpdeveloper.org/news/11134</link>
      <description><![CDATA[<p>
The Midstride Solutions blog has posted <a href="http://blog.midstride.com/2008/09/09/5-tips-to-develop-php-applications-fast/">five tips and tools</a> that can help to make you a better developer (and possibly make you a faster one).
</p>
<blockquote>
In this post, I will discuss 5 tips and tools that the php community has provided to speed up development time and improve code quality.  These should help you out if you don't already know them, but if you do I would like to hear what you use to speed up your development time.
</blockquote>
<p>Their five tips/tools are:</p>
<ul>
<li>Framework with the Model View Controller (MVC)
<li>AJAX Frameworks
<li>Integrated Development Environment (IDE)
<li>Database Creation/Management Software
<li>Object Relational Mapping (ORM)
</ul>
<p>
Included for each is his personal preference and recommendation.
</p>
]]></description>
      <pubDate>Thu, 02 Oct 2008 11:16:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[IBM DeveloperWorks: Seven habits for writing secure PHP applications]]></title>
      <guid>http://www.phpdeveloper.org/news/11125</guid>
      <link>http://www.phpdeveloper.org/news/11125</link>
      <description><![CDATA[<p>
The IBM DeveloperWorks site has <a href="http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html?ca=dgr-btw01PHP-7Habits&S_TACT=105AGX59&S_CMP=grsite-btw01">posted some advice</a> that can help keep you, your application and your data safe from security-related attacks.
</p>
<blockquote>
Security in a PHP application includes remote and local security concerns. Discover the habits PHP developers should get into to implement Web applications that have both characteristics. 
</blockquote>
<p>
The habits in <a href="http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html?ca=dgr-btw01PHP-7Habits&S_TACT=105AGX59&S_CMP=grsite-btw01">their list</a> are:
</p>
<ul>
<li>Validate input
<li>Guard your file system
<li>Guard your database
<li>Guard your session
<li>Guard against XSS vulnerabilities
<li>Guard against invalid posts
<li>Protect against CSRF
</ul>
<p>
Each comes with their own explanation and for some, code to help you spot the mistakes and correct them.
</p>]]></description>
      <pubDate>Wed, 01 Oct 2008 10:28:55 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NETTUTS.com: Create a PHP5 Framework - Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/11027</guid>
      <link>http://www.phpdeveloper.org/news/11027</link>
      <description><![CDATA[<p>
NETTUTS.com has posted the <A href="http://nettuts.com/php/create-a-php5-framework-part-2/">second part</a> of their tutorial on how to create a simple framework of your own in a PHP5 environment.
</p>
<blockquote>
With the basic structure for our Framework in place, it is time to start adding functionality to it. In this tutorial we will create a template manager and database handler, bringing us a step closer to a powerful Framework fit for use for almost any project. If you haven't already, be sure to <A href="http://nettuts.com/php/creating-a-php5-framework-part-1/">review Part 1</a> of this series first!
</blockquote>
<p>
This time they look at a few different parts of the framework, namely the database handler, the template manager and loading data into the framework. The end it with an example of the simple framework in action - pulling a list of members from a database and displaying them to the page.
</p>]]></description>
      <pubDate>Tue, 16 Sep 2008 10:39:53 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: Understanding Doctrine's NestedSet feature]]></title>
      <guid>http://www.phpdeveloper.org/news/10943</guid>
      <link>http://www.phpdeveloper.org/news/10943</link>
      <description><![CDATA[<p>
On his CodeUtopia blog <i>Jani Hartikainen</i> gives an <a href="http://codeutopia.net/blog/2008/08/30/understanding-doctrines-nestedset-feature/">inside look</a> at a feature of Doctrine, nested sets.
</p>
<blockquote>
The Doctrine library comes with a feature called nested set, which makes saving trees in a database easy. However, it's quite easy to accidentally cause a lot of extra unneeded queries if not being careful. Here are some pointers to keep in mind while working with the nested set, and some example queries to make understanding it easier.
</blockquote>
<p>
He gives an example, showing how to get rows from the database - parent and child - and some optimization tips to keep things light. There's also some pros and cons included for doing it either way (the standard fetching or using the more optimized versions).
</p>]]></description>
      <pubDate>Tue, 02 Sep 2008 10:29:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[ProDevTips.com: File Uploads with PHP Doctrine]]></title>
      <guid>http://www.phpdeveloper.org/news/10937</guid>
      <link>http://www.phpdeveloper.org/news/10937</link>
      <description><![CDATA[<p>
The ProDevTips blog has posted the <a href="http://www.prodevtips.com/2008/08/31/file-uploads-with-php-doctrine/">fifth part</a> of their look at using Doctrine with PHP. This time they focus on file uploads.
</p>
<blockquote>
It's time to take a look at how file uploads can be integrated into the Doctrine validation and CRUD process. We will have a product in the form of a digital download as an example, it will have a screenshot image that can be maximum 250 pixels wide and high. The download itself will be a zipped file.
</blockquote>
<p>
They set up their table definitions first and set up a few validation functions (update, insert and for the file data) to work on top of that. Custom upload/uploadImage and save methods handle the user's submission while a simple delete method makes removing images easy.
</p>]]></description>
      <pubDate>Mon, 01 Sep 2008 10:37:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[CodeUtopia Blog: Database helper for PHPUnit]]></title>
      <guid>http://www.phpdeveloper.org/news/10917</guid>
      <link>http://www.phpdeveloper.org/news/10917</link>
      <description><![CDATA[<p>
On the CodeUtopia blog there's a <a href="http://codeutopia.net/blog/2008/08/27/database-helper-for-phpunit/">recent post</a> with info on creating a custom event listener in PHPUnit that can help keep you database data completely clean.
</p>
<blockquote>
When testing code which uses the database, you would usually want to make sure the database stays pristine for each test - All tables should be empty, as any extra data could interfere with the tests. You could probably write an extended Testcase class which automatically does this before each test in setUp and afterwards in tearDown, but it may have some issues. [...] Luckily, PHPUnit has a way to add event listener that react to certain events.
</blockquote>
<p>
It uses the <a href="http://www.phpunit.de/pocket_guide/3.3/en/phpunit-book.html#extending-phpunit.PHPUnit_Framework_TestListener">TestListener interface</a> to make the event handler that (with the help of Doctrine) starts up, makes the tables with data and wipes them out at the end. 
</p>
<p>
Code for the sample listener is in the post and included is the method for checking to see if you even need to use the database or not.
</p>]]></description>
      <pubDate>Thu, 28 Aug 2008 10:22:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Reader Feedback: Working with XML In PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10916</guid>
      <link>http://www.phpdeveloper.org/news/10916</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> has <a href="http://www.littlehart.net/atthekeyboard/2008/08/27/reader-feedback-working-with-xml-in-php/">answered some more questions</a> his readers have asked in a new post to his blog today. This time the focus is on XML handling.
</p>
<blockquote>
Welcome to the 3rd installment of me answering reader feedback questions. Today we deal with a topic that I deal with every day at my <a href="http://www.xmlteam.com/">day job</a> - working with XML in PHP.
</blockquote>
<p>
He <a href="http://www.littlehart.net/atthekeyboard/2008/08/27/reader-feedback-working-with-xml-in-php/">talks about</a> SimpleXML (and how well it does its job) and their (his work's) current method of handling the storage of XML in a database. He describes both their current process and his ideal one, how he'd want to interface with their <a href="http://www.littlehart.net/atthekeyboard/2008/08/27/reader-feedback-working-with-xml-in-php/exist.sourceforge.net">eXist</a> backend.
</p>]]></description>
      <pubDate>Thu, 28 Aug 2008 09:39:07 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Paginating Database Records with the Code Igniter PHP Framework ]]></title>
      <guid>http://www.phpdeveloper.org/news/10913</guid>
      <link>http://www.phpdeveloper.org/news/10913</link>
      <description><![CDATA[<p>
DevShed continues their look at using the <a href="http://www.codeigniter.com">CodeIginiter</a> PHP framework to build a sample application in <a href="http://www.devshed.com/c/a/PHP/Paginating-Database-Records-with-the-Code-Igniter-PHP-Framework/">this latest part</a> of their series - a look a paginating the database results from a query.
</p>
<blockquote>
As you may guess, however, Code Igniter comes bundled with a robust set of core classes, which can be used to perform all sorts of clever tasks, such as working with databases, performing file uploads, validating user-supplied data, and so forth. [...] I'm going to show you how to improve the MySQL-driven application developed in the preceding tutorial, since it'll be provided with the capacity for paging database records, via the pager class included with Code Igniter.
</blockquote>
<p>
He starts by <a href="http://www.devshed.com/c/a/PHP/Paginating-Database-Records-with-the-Code-Igniter-PHP-Framework/1/">reviewing</a> the previous part of the series, pulling the data from MySQL, then shows how to push that through the pagination component to create a simple user listing.
</p>]]></description>
      <pubDate>Thu, 28 Aug 2008 07:57:51 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Maggie Nelson's Blog: To persist or not to persist?]]></title>
      <guid>http://www.phpdeveloper.org/news/10882</guid>
      <link>http://www.phpdeveloper.org/news/10882</link>
      <description><![CDATA[<p>
On her blog, Objectively Oriented, <i>Maggie Nelson</i> looks at <a href="http://www.objectivelyoriented.com/2008/08/to_persist_or_not_to_persist.html">a topic</a> she was debating for a new application - whether or not to use persistent connections to her database.
</p>
<blockquote>
There's a connection already waiting for you. Yay, right? Well, with MySQL, connecting is actually really really cheap, and frankly, if you are using persistent connections, you might encounter some issues with Apache going zombie on processes that use a connection, effectively taking that connection out of use. Grrr.
</blockquote>
<p>
She <a href="http://www.objectivelyoriented.com/2008/08/to_persist_or_not_to_persist.html">did some research</a> on the topic but found contradicting evidence for both sides. Eventually, what her choice boiled down to was this possible issue mentioned by <i>Jay Pipes</i> (of MySQL):
</p>
<blockquote>
If you use Apache, Apache can zombie a PHP process and cause the mysql connection to be held until the mysql server restarts...
</blockquote>]]></description>
      <pubDate>Fri, 22 Aug 2008 11:18:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sanisoft Blog: Using CakePHP without a database]]></title>
      <guid>http://www.phpdeveloper.org/news/10881</guid>
      <link>http://www.phpdeveloper.org/news/10881</link>
      <description><![CDATA[<p>
On the Sanisoft blog today <i>Tarique Sani</i> has <a href="http://www.sanisoft.com/blog/2008/08/22/using-cakephp-without-a-database/">posted about</a> a method for using the CakePHP framework without a database to back it up.
</p>
<blockquote>
We recently programmed a CakePHP app which relies solely on remote server talking <a href="http://salesforce.com/">Saleforce</a> API for all data operations. The first challenge that we faced was how to prevent CakePHP from insisting on a database connection. The solution was simple enough and I never gave it much thought till the same question was brought up by more than one person on the CakePHP list. The solution involves creating a minimal dbo source file.
</blockquote>
<p>
It's a simple three step process to follow - making the dbo source file, set it up as the default driver and tell CakePHP to $useTable = false.
</p>]]></description>
      <pubDate>Fri, 22 Aug 2008 10:29:28 -0500</pubDate>
    </item>
  </channel>
</rss>
