<?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, 04 Jul 2008 17:05:35 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Eran Galperin's Blog: Passing arrays to Zend_Controller_Router]]></title>
      <guid>http://www.phpdeveloper.org/news/10518</guid>
      <link>http://www.phpdeveloper.org/news/10518</link>
      <description><![CDATA[<p>
<i>Eran Galperin</i> has posted <a href="http://www.techfounder.net/2008/06/23/passing-arrays-to-zend_controller_router/">a few hacks</a> you can use for the Zend Framework's Router system to make passing arrays easy and integrated.
</p>
<blockquote>
A big advantage to using the front controller in the Zend Framework is the ability to create nicely formatted urls. [...] The implementation of the default router in the Zend Framework (<a href="http://framework.zend.com/manual/en/zend.controller.router.html">Zend_Controller_Router_Rewrite</a>) does not allow for passing arrays in this manner though, since previously set keys get overwritten if they are declared more than once. This is somewhere between semi-annoying to very annoying, so lets get straight to hacking it into submission. 
</blockquote>
<p>
His <a href="http://www.techfounder.net/2008/06/23/passing-arrays-to-zend_controller_router/">patch</a> only changes one line in the Zend_Controller_Router_Route_Module component - changing it from assigning to a conditional checking for the existence of an array and setting it appropriately.
</p>]]></description>
      <pubDate>Tue, 01 Jul 2008 09:31:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Greg Beaver's Blog: PHP namespaces become much better (Derick take note)]]></title>
      <guid>http://www.phpdeveloper.org/news/10462</guid>
      <link>http://www.phpdeveloper.org/news/10462</link>
      <description><![CDATA[<p>
<i>Greg Beaver</i>, noting some issues that <i>Derick Rethans</i> had <a href="http://greg.chiaraquartet.net/exit.php?url_id=655&entry_id=193">pointed out</a> about namespace support for upcoming PHP versions, has <a href="http://greg.chiaraquartet.net/archives/193-PHP-namespaces-become-much-better-Derick-take-note.html">posted about</a> a patch he submitted to solve the problem simply.
</p>
<p>
The issue <i>Derick</i> pointed out:
</p>
<blockquote>
In PHP 5.3 this would alias the class Interval in the namespace PEAR::Date to the class Interval. For now, this code would work just fine. However, if PHP would introduce a class "Interval" at some point in the future (and PHP can do this as it <a href="http://greg.chiaraquartet.net/exit.php?url=aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi91c2VybGFuZG5hbWluZy5ydWxlcy5waHA=&entry_id=193">owns the global namespace</a>) then the above code would suddenly stop working.
</blockquote>
<p>
<i>Greg</i>'s patch makes it possible to "override" the internal class if need be, making it so that code currently working wouldn't break. All it takes is to "use" is like you normally would and and the magic happens behind the scenes.
</p>]]></description>
      <pubDate>Mon, 23 Jun 2008 11:19:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lukas Smith's Blog: KISS my...]]></title>
      <guid>http://www.phpdeveloper.org/news/10381</guid>
      <link>http://www.phpdeveloper.org/news/10381</link>
      <description><![CDATA[<p>
<i>Lukas Smith</i> recently <a href="http://pooteeweet.org/blog/0/1151#m1151">posted about</a> issues he's been coming across with the "KISS" mentality (and code) that the Zend Framework implements, specifically for the Zend_Feed component.
</p>
<blockquote>
Now that I am actually using the Zend Framework on my first project, hitting bugs/limitations in Zend_Feed and therefore looking at the code, I must say I am seeing feature duplication with internal PHP features that does not quite fit in with the KISS principle.
</blockquote>
<p>
He points out a few things that illustrate his point - the use of Zend_Http_Client instead of a <a href="http://ch2.php.net/manual/en/function.stream-context-create.php">strea context</a>, passing XML contents into loadXML instead of just load. As a replacement, he's considered <a href="http://svn.ez.no/svn/ezcomponents/trunk/Feed/src/feed.php">a Feed component</a> from the eZ components system, but it hasn't been released (officially) yet. So, as an alternative, he's come up with <a href="http://pooteeweet.org/public/Zend_Feed.diff">a patch</a> to fix a few things in the Zend_Feed component to make it a bit more KISS-friendly.
</p>]]></description>
      <pubDate>Tue, 10 Jun 2008 12:53:58 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPFreaks.com: Hardening PHP with Suhosin]]></title>
      <guid>http://www.phpdeveloper.org/news/10283</guid>
      <link>http://www.phpdeveloper.org/news/10283</link>
      <description><![CDATA[<p>
PHPFreaks.com has a <a href="http://www.phpfreaks.com/tutorial/hardening-php-with-suhosin">new tutorial</a> posted that looks to help you protect you and your application with an even greater level of security by using the <a href="http://www.hardened-php.net/suhosin/">Suhosin patch</a>.
</p>
<blockquote>
Suhosin is a great and simple way of increasing your security without having a large impact on overall performance. In this tutorial I will cover the installation and configuration of Suhosin on both debian etch and centos 5. I may cover mod_security in a later tutorial.
</blockquote>
<p>
They apt-get the packages needed for the patch in examples for two different distributions - Debian (etch) and CentOS. They also show how to set up some <a href="http://www.phpfreaks.com/tutorial/hardening-php-with-suhosin/page4">basic configuration</a> to get the patch installed and working with your PHP installation.
</p>]]></description>
      <pubDate>Wed, 28 May 2008 08:47:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[SaniSoft Blog: Multiple validation rules per model field while baking]]></title>
      <guid>http://www.phpdeveloper.org/news/10070</guid>
      <link>http://www.phpdeveloper.org/news/10070</link>
      <description><![CDATA[<p>
If you're a CakePHP user and have been frustrated by how this "bake" functionality doesn't allow for more than one validation rule on a given field, check out <a href="http://www.sanisoft.com/blog/2008/04/29/multiple-validation-rules-per-model-field-while-baking/">the new post</a> on the SaniSoft blog (from <i>Amit Badkas</i>):
</p>
<blockquote>
This is not much of a problem if you have only a few models but when you start to work on several dozen models in a project it becomes very tedious to open each and every model file to make changes.
</blockquote>
<p>
The result of his frustration has come out in the form of a <a href="https://trac.cakephp.org/attachment/ticket/3959/model.php.patch.txt">patch</a> as a part of a new ticket in the CakePHP request submission process.
</p>]]></description>
      <pubDate>Tue, 29 Apr 2008 16:12:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Lively's Blog: Late Static Binding (LSB) forward_static_call()]]></title>
      <guid>http://www.phpdeveloper.org/news/9939</guid>
      <link>http://www.phpdeveloper.org/news/9939</link>
      <description><![CDATA[<p>
On his blog, <i>Mike Lively</i> has <a href="http://www.ds-o.com/archives/69-Late-Static-Binding-LSB-forward_static_call.html">posted a look</a> at some of the work he's been doing on patches for the late static binding functionality to be included in PHP, including an example of the updates in action.
</p>
<blockquote>
This weekend I wrapped up a few small tests and sent the patch in and it was subsequently pushed to <a href="http://www.ds-o.com/exit.php?url_id=193&entry_id=69">php 5.3 and php 6.0</a>. Now, this is not at all the way I wanted things to work, in all honesty I think the patch is pretty hokey but unfortunately nobody really spoke up in support of the changes I wanted to make to parent:: in regards to LSB.
</blockquote>
<p>
His example shows how to override a static method and push that new method's execution to the parent class (in two ways - safe using forward_static_call and the not so safe calling itself with a parent:: override).
</p>]]></description>
      <pubDate>Wed, 09 Apr 2008 11:24:19 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Matthew Turland's Blog: Watch Your Include Path]]></title>
      <guid>http://www.phpdeveloper.org/news/9867</guid>
      <link>http://www.phpdeveloper.org/news/9867</link>
      <description><![CDATA[<p>
<i>Matthew Turland</i> is looking to "save you some grief" by <a href="http://ishouldbecoding.com/2008/03/26/watch-your-include-path">pointing out</a> an issue he recently had trouble with and eventually found out was <a href="http://bugs.php.net/bug.php?id=43677">a bug in PHP</a>.
</p>
<blockquote>
It's pretty rare that I encounter a bug in the software I run that hampers my ability to work or my server environment's ability to function normally. However, I encountered one last week that has taken me and several Rackspace support technicians nearly a week to figure out, namely <a href="http://bugs.php.net/bug.php?id=43677">PHP bug #43677</a>.
</blockquote>
<p>
The issue was that PHP seemed to be "forgetting" the include_path in the current script (not Apache). The bug has been found in PHP 5.2.5 (and possible in all of the 5.2.x releases as well). The problem has been fixed in the latest CVS version and <a href="http://bugs.php.net/bug.php?id=43677">a patch</a> has been created for those that want to correct the problem right away.
</p>]]></description>
      <pubDate>Thu, 27 Mar 2008 10:24:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ben Ramsey's Blog: Supporting PUT & DELETE in the Zend Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/9719</guid>
      <link>http://www.phpdeveloper.org/news/9719</link>
      <description><![CDATA[<p>
<i>Ben Ramsey</i> has <a href="http://benramsey.com/archives/supporting-put-delete-in-the-zend-framework/">recently blogged about</a> some of the research and bit of development that he's done to add "more correct" functionality to the Zend Framework for working with RESTful interfaces - proper PUT and DELETE support.
</p>
<blockquote>
I've recently been wrapped up in an effort to design and implement a RESTful API using the Atom Protocol for a project at work. We are using the Zend Framework as the underlying framework for the project, so, in order to follow the Atom Protocol, I needed to support the HTTP methods PUT and DELETE
</blockquote>
<p>
Since the Zend Framework has been playing such a prominent role in the development, he's been digging into the Zend_Rest_Server component code and isn't too happy about its support for PUT and DELETE. As a result, he's proposed methods that might help resolve things such as isGet, isDelete, isOptions and getEntityBody. He' even created <a href="http://framework.zend.com/issues/browse/ZF-2723">a patch</a> to make the needed changes.
</p>]]></description>
      <pubDate>Thu, 28 Feb 2008 10:27:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Developer Tutorials Blog: And the winner of the most important security tip competition is...]]></title>
      <guid>http://www.phpdeveloper.org/news/9642</guid>
      <link>http://www.phpdeveloper.org/news/9642</link>
      <description><![CDATA[<p>
The Developer Tutorials blog has posted <a href="http://www.developertutorials.com/blog/php/most-important-php-security-tip-34/">their "winner"</a> of a list of things to do to keep you and your website secure:
</p>
<blockquote>
When it comes to PHP security, you often think of input filtering, SQL injection prevention, XSS in user submitted content and so on. Well, forget about that. They're all pretty trivial compared to what I feel is by far the most important security issue of any web application. Read on to find out why.
</blockquote>
<p>
Their number one thing to do to keep safe and secure? "Keep your systems updated." They point out that security a web site is one thing but securing the system that it runs on/has been developed on is another (and improperly patched, it could cause some huge problems). 
</p>
<blockquote>
Now, the best way to keep on top of potential vulnerabilities in your underlying systems is with updates. Sometimes, however, you need to go a little further. [...] Watching the web is also a good idea; major security vulnerabilities generally make it to the front page of Digg.
</blockquote>]]></description>
      <pubDate>Fri, 15 Feb 2008 09:31:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Christopher Jones' Blog: Temporary LOBS in PHP's OCI8 Extension. Instant Client.]]></title>
      <guid>http://www.phpdeveloper.org/news/9460</guid>
      <link>http://www.phpdeveloper.org/news/9460</link>
      <description><![CDATA[<p>
<i>Christopher Jones</i> talks today on <a href="http://blogs.oracle.com/opal/2008/01/17#a264">his blog</a> about a bug he's just corrected and integrated into the release of the Oracle Instant Client that lets PHP correctly take advantage of the temporary LOBS functionality.
</p>
<blockquote>
When PHP is done with the temporary LOB, it needs to tell Oracle to destroy it. If this isn't done, then the temporary LOB will hang around using DB space until the connection is closed. I just merged a fix worked on by Krishna Mohan and myself for <a href="http://bugs.php.net/bug.php?id=43497">bug 43497</a>.
</blockquote>
<p>
Example code is included showing two instances of its use - a normal use that frees the memory correctly and the other showing how to create the temporary lob to hold the data as needed.
</p>]]></description>
      <pubDate>Mon, 21 Jan 2008 12:05:00 -0600</pubDate>
    </item>
  </channel>
</rss>
