<?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, 08 Aug 2008 15:51:33 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Zend Developer Zone: Building Websites with Joomla! 1.5]]></title>
      <guid>http://www.phpdeveloper.org/news/10361</guid>
      <link>http://www.phpdeveloper.org/news/10361</link>
      <description><![CDATA[<p>
The Zend Developer Zone has <a href="http://devzone.zend.com/article/3403-Building-Websites-with-Joomla-1.5">posted a book review</a> of an Packt book, "Building Websites with Joomla! 1.5" (by <i>Hagen Graf</i> - the book, not the review):
</p>
<blockquote>
The book is a tutorial guide to Joomla! 1.5 and was already written and published during the development of Joomla! 1.5. This is the final version and it aims for "web developers, designers, webmasters, content editors and marketing professionals" and is suitable for anyone starting out with Joomla! 1.5, for people who upgrade to Joomla 1.5 and for those who just want a good printed guide/manual at hand.
</blockquote>
<p>
<a href="http://devzone.zend.com/article/3403-Building-Websites-with-Joomla-1.5">The review</a> steps through the chapters, highlighting points of interest  and the wrapup uses terms like "great instructional value", "very passionate about Joomla!" and the fact that the only thing the reviewer sees missing of a chapter about security.
</p>]]></description>
      <pubDate>Fri, 06 Jun 2008 12:53:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ibuildings Blog: Accessing object properties by reference]]></title>
      <guid>http://www.phpdeveloper.org/news/10114</guid>
      <link>http://www.phpdeveloper.org/news/10114</link>
      <description><![CDATA[<p>
On the Ibuildings blog today, <i>Harrie Verveer</i> has <a href="http://www.ibuildings.com/blog/archives/951-Accessing-object-properties-by-reference.html">posted about</a> an interesting quirk he found when working with objects and references:
</p>
<blockquote>
PHP is a loosely typed language. Most of the time this is very useful because you as a programmer don't have to worry about typecasting: it's done for you. However, on some occasions this can cause some unexpected trouble. [...] In this blog I want to point out what can happen if you try to access object properties by reference when the object is not initialized.
</blockquote>
<p>
<a href="http://www.ibuildings.com/blog/archives/951-Accessing-object-properties-by-reference.html">His example</a> shows the problem when it tries to grab a value from an array in a non-existent object by reference. It results in a dyanamically created object (of that type) with an empty array inside of it. It only works when you grab it by reference, but he shares a tip or two about how you can prevent hard to track down issues like this.
</p>]]></description>
      <pubDate>Mon, 05 May 2008 14:38:49 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP-GTK Community Site: Gataka: the PHP-GTK IRC bot]]></title>
      <guid>http://www.phpdeveloper.org/news/9504</guid>
      <link>http://www.phpdeveloper.org/news/9504</link>
      <description><![CDATA[<p>
The admins over on the <a href="http://www.php-gtk.eu">PHP-GTK Community site</a> have announced a new resource PHP-GTK ircers can take advantage of - a new bot that hangs out in the #php-gtk channel over on the <a href="irc://irc.freenode.net/php-gtk">Freenode</a> IRC network with an aim to be as helpful as possible.
</p>
<blockquote>
The PHP-GTK.eu community site is now host to an IRC bot named Gataka (for "GTK"), helping users on the Freenode IRC channel for PHP-GTK, at <a href="irc://irc.freenode.net/php-gtk">irc://irc.freenode.net/php-gtk</a>.
</blockquote>
<p>
Currently is has an API interface (for PHP-GTK elements), user tracking and the ability to learn factoids. They're even starting to <a href="http://php-gtk.eu/irc-log-publication-poll">look for input</a> regarding new features (log publication, in this case).
</p>]]></description>
      <pubDate>Mon, 28 Jan 2008 10:36:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Making the Web Blog: Becoming PHP 6 Compatible]]></title>
      <guid>http://www.phpdeveloper.org/news/9179</guid>
      <link>http://www.phpdeveloper.org/news/9179</link>
      <description><![CDATA[<p>
On the Making the Web blog, there's <a href="http://bitfilm.net/2007/09/21/becoming-php-6-compatible/">this post</a> that talks about looking forward with your code and making it ready for when PHP6 comes around.
</p>
<blockquote>
If you want to make use of PHP 6 when it comes, you're going to have to write your new scripts so they are compatible, and possibly change some of your existing scripts. To start making your scripts PHP 6 compatible, I've compiled a list of tips to follow when scripting.
</blockquote>
<p>
There's only five things in his list (like "stop using magic_quotes" and "don't register long arrays") but the comments provide many more additional gotchas to look out for and new features that will be included.
</p>]]></description>
      <pubDate>Wed, 05 Dec 2007 11:13:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Paul Jones' Blog: Memory Leaks With Objects in PHP 5]]></title>
      <guid>http://www.phpdeveloper.org/news/8746</guid>
      <link>http://www.phpdeveloper.org/news/8746</link>
      <description><![CDATA[<p>
<i>Paul Jones</i> <a href="http://paul-m-jones.com/blog/?p=262">presents a problem</a> he was having in a new post to his blog - the issue was with memory leaks in objects in a PHP5 application he was working on.
</p>
<blockquote>
One of the nice things about using a scripting language is that it automates garbage collection for you. You don't have to worry about releasing memory when youâ'™re done with your variables. [...] But there is at least one circumstance in which PHP will not free memory for you when you call unset(). Cf. <a href="http://bugs.php.net/bug.php?id=33595">http://bugs.php.net/bug.php?id=33595</a>.
</blockquote>
<p>
The <a href="http://paul-m-jones.com/blog/?p=262">problem</a> is that, when trying to unset the parent object in a parent/child relationship, the memory space for the parent reference in the child isn't removed. The problem, left unchecked can cause a script to go over the memory limit pretty easily (especially with larger objects).
</p>
<p>
He suggests two solutions - one that the user can control (calling a destructor before unsetting the object) or a PHP internals method that involves fixing issues with the reference counts created with the objects.
</p>]]></description>
      <pubDate>Fri, 28 Sep 2007 08:46:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Alex Netkachov's Blog: Optimize PHP memory usage: eliminate circular references]]></title>
      <guid>http://www.phpdeveloper.org/news/8676</guid>
      <link>http://www.phpdeveloper.org/news/8676</link>
      <description><![CDATA[<p>
On his blog today, <i>Alex Netkachov</i> has <a href="http://www.alexatnet.com/node/73">posted a suggestion</a> of how to combat a common issue facing PHP scripts - their memory usage.
</p>
<blockquote>
PHP has a build-in garbage collector so you do not need to track the links on the objects, allocate memory for objects and delete them when they are not longer necessary. Things seem so perfect that developers do not even know that their scripts allocate a lot of memory until their server stops processing requests because of the out of memory error.
</blockquote>
<p>
<a href="http://www.alexatnet.com/node/73">His example</a> is the processing of a parent/child relationship tree. If not managed correctly, the variables being used could get out of hand quite quickly. <i>Alex</i> recommends the use of a "destructor" at the end of each iteration to help destroy variables and values no longer needed.
</p>]]></description>
      <pubDate>Tue, 18 Sep 2007 17:17:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[SitePoint PHP Blog: Which reference sites do you trust?]]></title>
      <guid>http://www.phpdeveloper.org/news/8559</guid>
      <link>http://www.phpdeveloper.org/news/8559</link>
      <description><![CDATA[<p>
The SitePoint PHP blog has a <a href="http://www.sitepoint.com/blogs/2007/08/28/which-reference-sites-do-you-trust/">post that asks developers</a> "Which reference sites do you trust?"
</p>
<blockquote>
While completing the tech edit on the <a href="http://www.sitepoint.com/books/phpant2/">2nd edition of the PHP Anthology</a> the issue of linking came up; specifically, linking to authoritative reference material on the web. [...] The issue isn't simple one. Regarding PHP, the <a href="http://www.php.net/docs.php">php.net manual</a> is the authoritative reference site. The various web technology standards are also represented by authority web sites.
</blockquote>
<p>
So what does he thing makes for a good, trustworthy resource? <a href="http://www.sitepoint.com/blogs/2007/08/28/which-reference-sites-do-you-trust/">He includes criteria</a> divided up into three sections - readability, accuracy & trustworthiness and longevity.
</p>]]></description>
      <pubDate>Thu, 30 Aug 2007 10:43:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: Circular References]]></title>
      <guid>http://www.phpdeveloper.org/news/8124</guid>
      <link>http://www.phpdeveloper.org/news/8124</link>
      <description><![CDATA[<p>
In a new post, <i>Derick Rethans</i> <a href="http://derickrethans.nl/circular_references.php">talks about</a> circular references (a reference of a memory structure back to itself) and how they relate to PHP.
</p>
<blockquote>
Circular-references has been a long outstanding issue with PHP. They are caused by the fact that PHP uses a reference counted memory allocation mechanism for its internal variables. This causes problems for longer running scripts (such as an <a href="http://blog.milkfarmsoft.com/?p=51">Application Server</a> or the <a href="http://ez.no/ezcomponents">eZ Components</a> test-suite) as the memory is not freed until the end of the request. But not everybody is aware on what exactly the problem is, so here is a small introduction to circular references in PHP.
</blockquote>
<p>
He starts by explaining what's so bad about circular references - issues not only with referencing the variable but also with freeing up the resources associated with it. He does <a href="http://derickrethans.nl/circular_references.php">suggest some solutions</a> to the issue including garbage collection and cyclic tracing.
</p>]]></description>
      <pubDate>Tue, 26 Jun 2007 09:21:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Esser's Blog: PHP 4 - Reference Counter Overflow Fix]]></title>
      <guid>http://www.phpdeveloper.org/news/7879</guid>
      <link>http://www.phpdeveloper.org/news/7879</link>
      <description><![CDATA[<p>
<i>Stefan Esser</i> has <a href="http://blog.php-security.org/archives/83-PHP-4-Reference-Counter-Overflow-Fix.html">a new post</a> mentioning a new patch that he's created to help correct <a href="http://www.php-security.org/MOPB/MOPB-01-2007.html">an issue</a> with the ZVAL Reference Counter that could cause a buffer overflow in an application.
</p>
<blockquote>
When a PHP application is run in PHP 4 it can overflow the variable reference counter because it is only 16 bit wide. Whenever this happens it will result in a double destruction of the underlying variable. A local attacker can easily create PHP code that uses such a double destruction to execute arbitrary code within the process executing PHP (e.g. webserver process). This allows bypassing restrictions enforced by disable_functions, open_basedir, SAFE_MODE or to launch direct local root exploits against the target system.
</blockquote>
<p>
<a href="http://www.hardened-php.net/patches/php-4.4.7-refcount-overflow-fix.patch.gz">The patch</a> [tar.gz] fixes the issue and keeps from breaking anything from the past (backwards compatibility). You can either grab it now and apply it to your distribution (the sooner the better) or wait until it gets merged into the PHP CVS version and released with the next bug fix release.
</p>]]></description>
      <pubDate>Mon, 21 May 2007 08:47:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sara Golemon's: You're being lied to.]]></title>
      <guid>http://www.phpdeveloper.org/news/7176</guid>
      <link>http://www.phpdeveloper.org/news/7176</link>
      <description><![CDATA[<p>
If you think you know what's going on behind the scenes when you're working with objects in PHP5 - you're wrong. You're even being lied to, according to <a href="http://blog.libssh2.org/index.php?/archives/51-Youre-being-lied-to..html">Sara Golemon's latest entry</a>:
</p>
<blockquote>
If you're among the crowd who have migrated an OOP based application from PHP4 to PHP5, then I'm sure you've heard the expression "Objects are copied by reference by default in PHP5". Whoever told you that, was lying.
</blockquote>
<p>
As <a href="http://blog.libssh2.org/index.php?/archives/51-Youre-being-lied-to..html">she explains</a>, the truth is more that they behave that way, not that they are actually like that. She talks about what objects actually are and how things are handled differently from PHP4 to PHP5. She also "lies" a little also about the "copying" part, and explains the internal structure of a variable to show why.
</p>
<p>
She also includes a bit on why referencing variables when it's not really a must is a bad idea - the main idea of it being a waste of space and memory in the application.
</p>]]></description>
      <pubDate>Mon, 29 Jan 2007 08:38:00 -0600</pubDate>
    </item>
  </channel>
</rss>
