<?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 16:05:14 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Matthew Turland's Blog: EAV Modeling - Square Peg in a Round Hole? ]]></title>
      <guid>http://www.phpdeveloper.org/news/10687</guid>
      <link>http://www.phpdeveloper.org/news/10687</link>
      <description><![CDATA[<p>
<i>Matthew Turland</i> has <a href="http://ishouldbecoding.com/2008/07/19/eav-modeling---square-peg-in-a-round-hole">posted about</a> a topic that was the subject of a <a href="http://www.phparch.com/c/magazine/issue/76">recent cover story</a> in php|architect magazine - <a href="http://en.wikipedia.org/wiki/Entity-Attribute-Value_model">EAV modeling</a>.
</p>
<blockquote>
The mental image that came to me when reading about this approach to data modeling was taking the traditional relational table and turning it on its head. [...] EAV actually has to circumvent, work around, or reimplement features that most mainstream database servers today provide "for free" to the traditional relational counterparts of EAV in order to get equal functionality.
</blockquote>
<p>
He <a href="http://ishouldbecoding.com/2008/07/19/eav-modeling---square-peg-in-a-round-hole">talks about</a> features the structure has (including row-level referential integrity and schema metadata) and points out some of the other document-focused database systems like <a href="http://lucene.apache.org/java/docs/index.html">Lucene</a> and <a href="http://incubator.apache.org/couchdb/">CouchDB</a>.
</p>
<p>
Check out the story in the <a href="http://www.phparch.com/c/magazine/issue/76">June 2008 issue</a> of php|architect for that cover story from <i>Carl Welch</i>.
</p>]]></description>
      <pubDate>Fri, 25 Jul 2008 11:14:15 -0500</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[Vinu Thomas' Blog: MemProxy 0.1 - Memcache Proxy Server in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10483</guid>
      <link>http://www.phpdeveloper.org/news/10483</link>
      <description><![CDATA[<i>Vinu Thomas</i> <a href="http://blogs.vinuthomas.com/2008/06/25/memproxy-01-memcache-proxy-server-in-php/">points out</a> a new "server" project that's been created to aid in caching for your app - <a href="http://code.google.com/p/memproxy/">MemProxy</a>.
</p>
<blockquote>
A pretty cool project in PHP - Memproxy is a caching proxy "server" that uses memcached for storing the cache. This project uses PHP scripts to handle caching using memcache.
</blockquote>
<p>
The server uses memcached to store the information and automatically manages things like TTL, custom headers and is "application agnostic" all wrapped up in a small codebase with minimal dependencies.
</p>]]></description>
      <pubDate>Wed, 25 Jun 2008 11:13:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Hasin Hayder's Blog: Facebook data storage api can really be the replacement of memcache]]></title>
      <guid>http://www.phpdeveloper.org/news/9942</guid>
      <link>http://www.phpdeveloper.org/news/9942</link>
      <description><![CDATA[<p>
<i>Hasin Hayder</i> has <a href="http://hasin.wordpress.com/2008/04/07/facebook-data-storage-can-really-be-the-replacement-of-memcache/">proposed an interesting replacement</a> for the usual caching mechanism - using the <a href="http://www.facebook.com">Facebook</a> data storage API to cache copies of pages/data/etc.
</p>
<blockquote>
Why not! All you need is a fast-n-furious caching storage for your Facebook application which stores values against a key, same like a hash table. Facebook data storage API does the same for you. using the batch API in Facebook rest client you can seriously think it as an alternative of memcache.
</blockquote>
<p>
He shows the simple process for making the object (manually in a preexisting application), inserting data into the object through the API they provide and how to pull that data back out.
</p>]]></description>
      <pubDate>Wed, 09 Apr 2008 13:58:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jim Wynia's Blog:  WebDAV, PHP and You]]></title>
      <guid>http://www.phpdeveloper.org/news/9246</guid>
      <link>http://www.phpdeveloper.org/news/9246</link>
      <description><![CDATA[<p>
<i>Jim Wynia</i> has <a href="http://www.phpgeek.com/wordpress/webdav-php-and-you/123/">posted some thoughts</a> about a <a href="http://www.phpdeveloper.org/news/9238">recent announcement</a> of the development of a WebDAV library for PHP to his blog today:
</p>
<blockquote>
However, over the past few years, WebDAV has started gaining traction as the underlying protocol for Subversion repositories over the web and in several other places. That makes <a href="http://www.rooftopsolutions.nl/article/168">this story about a new PHP library</a> for working with WebDAV interesting.
</blockquote>
<p>
He notes that he's moved a lot of his file storage to Amazon's s3 service and having this new PHP library would make it even easier for him to get at his content directly from his applications.
</p>]]></description>
      <pubDate>Fri, 14 Dec 2007 11:13:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Davey Shafik's Blog: PHP Streams Rock my World!]]></title>
      <guid>http://www.phpdeveloper.org/news/8641</guid>
      <link>http://www.phpdeveloper.org/news/8641</link>
      <description><![CDATA[<p>
<i>Davey Shafik</i> has gotten <a href="http://pixelated-dreams.com/archives/319-PHP-Streams-Rock-my-World!.html">more than a little excited</a> by the streams functionality in his latest blog post:
</p>
<blockquote>
PHP streams are absolutely amazing. As mentioned by Elizabeth Smith (a great read if you don't know how to use streams) PHP streams are super powerful. Streams is something that is (to my knowledge) unique to PHP. The closest thing I've seen to it, is Linux's FUSE "user space" (i.e. not kernel module) file systems.
</blockquote>
<p>
He <a href="http://pixelated-dreams.com/archives/319-PHP-Streams-Rock-my-World!.html">shows an example</a> of a stream in action and suggests an interface he'd like to see - an automatic connection to the Amazon S3 storage.
</p>]]></description>
      <pubDate>Wed, 12 Sep 2007 14:14:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Evert Pot's Blog: PHP: Arrays vs. Objects]]></title>
      <guid>http://www.phpdeveloper.org/news/8479</guid>
      <link>http://www.phpdeveloper.org/news/8479</link>
      <description><![CDATA[<p>
Wanting to test out a new way of doing things, <i>Evert Pot</i> decided to <a href="http://www.rooftopsolutions.nl/article/148">write up some tests</a> using a <a href="http://en.wikipedia.org/wiki/Value_Objects">Value Object</a> style of data storage versus just in arrays:
</p>
<blockquote>
In a lot of cases arrays are used in PHP to store object-like information, like the results of a database query. I do this a lot too, but I kind of want to change things around to make use of <a href="http://en.wikipedia.org/wiki/Value_Objects">VO's</a>. I feel this makes a lot more sense, since most of the application I build are heavy OOP anyway, and I get all the added OOP benefits, like type-hinting, inheritance.. well, you know the deal.
</blockquote>
<p>
In <a href="http://www.rooftopsolutions.nl/article/148">his tests</a> he creates an array of data, a value block of three "properties", looped 1000 times) and  a block of three actual properties on an object. Between each, he's using the XDebug memory usage functions to check to see which uses less resources.
</p>
<p>
Overall, there's really not that much of a difference between using either of them. So, basically, it's up to you which storage method is the simplest for you to use.
</p>]]></description>
      <pubDate>Fri, 17 Aug 2007 10:27:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: The Storage Medium]]></title>
      <guid>http://www.phpdeveloper.org/news/6819</guid>
      <link>http://www.phpdeveloper.org/news/6819</link>
      <description><![CDATA[<p>
The Zend Developer Zone is continuing on from <a href="http://www.phpdeveloper.org/news/6744">previous</a> <a href="http://www.phpdeveloper.org/news/6775">parts</a> of a series in <A href="http://devzone.zend.com/node/view/id/1326">this new tutorial</a> posted today - part three of the "Ajax Chat Tutorial" tutorial series.
</p>
<blockquote>
As our chat application gathers pace we return to the server side of the application. At this point we have setup the Zend Framework with an IndexController class to handle server requests. When we receive a new chat message from the user, we will need to store it. For this tutorial I've selected a file based solution using XML.
</blockquote>
<p>
They start with a look at the storage method - XML on the backend, pushed into a MySQL database (along with the message format). There's a <a href="http://devzone.zend.com/node/view/id/1326">quick refresher</a> on SimpleXML before they show how to integrate this storage method into the current system.
</p>]]></description>
      <pubDate>Mon, 04 Dec 2006 14:48:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Application Development Trends: New LAMP Layer: FileMaker API for PHP?]]></title>
      <guid>http://www.phpdeveloper.org/news/5937</guid>
      <link>http://www.phpdeveloper.org/news/5937</link>
      <description><![CDATA[<p>
According to <a href="http://www.adtmag.com/article.aspx?id=19003">this new article</a> from Application Development Trends today, a collaboration has been formed between FileMaker users familiar with PHP and Zend to create a new kind of API to the FileMaker system.
</p>
<blockquote>
<p>
FileMaker's senior product manager Kevin Nathanson says that FileMaker is addressing two audiences with the API beta: existing users of the company's database software, and PHP developers looking for simpler database software than DBMSs such as MySQL.
</p>
<p>
In fact, developers have been interested in connecting this everyman database software with the popular embedded scripting language for some time, and FileMaker's PHP API has a predecessor: FX.php, an independently developed, open-source PHP class designed to pull data from FileMaker Pro using the XML output by Server Advanced for FileMaker 7 or the Web Companion for FileMaker 5 and 6.
</p>
</blockquote>
<p>
Developers are <a href="http://www.adtmag.com/article.aspx?id=19003">reminded</a> that the library is still in a beta format and that constant work is being done to enhance its functionality. You can get complete information <a href="http://www.filemaker.com/developers/resources/php">about the library here</a>.
</p>]]></description>
      <pubDate>Wed, 02 Aug 2006 06:42:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sara Goleman's Blog: What the heck is TSRMLS_CC anyway?]]></title>
      <guid>http://www.phpdeveloper.org/news/5495</guid>
      <link>http://www.phpdeveloper.org/news/5495</link>
      <description><![CDATA[<p>
<i>Sara Goleman</i>, a definite specialist in the internals of PHP, has posted <a href="http://blog.libssh2.org/index.php?/archives/22-What-the-heck-is-TSRMLS_CC-anyway.html">This new item</a> on her blog today with details on a construct that's a bit mysterious, but pervasive in the code - TSRMLS_CC.
</p>
<quote>
<i>
<p>
Those who know what this is typically answer questions from those who don't with "Don't worry about what it is, just use it here here here and here. And if the compiler says you're missing a tsrm_ls, put it there too..." This isn't laziness on the part of the person answering the question (okay, maybe it is a little bit), it's just that the engine goes so far out of its way to simplify what this magic values does, that there's no profit in a new extension developer knowing the mechanics of it. The information is like a cow's opinion, it doesn't matter, it's Moo.
</p>
<p>
Since I love to listen to myself rattle on about pointless topics (and I havn't blogged much this month), I thought I'd cover this topic and see if anyone manages to stay awake through it. 
</p>
</i>
</quote>
<p>
In the <a href="http://blog.libssh2.org/index.php?/archives/22-What-the-heck-is-TSRMLS_CC-anyway.html">remainder of the post</a>, she breaks it down into its components and explains what each means. At its base level, it helps manage the differences between code using the "Zend Thread Safety" functionality and the code that's not. To illustrate the point, she provides two examples - one with globals and one with "non-global globals". Of course, this functionality isn't any good if you can't get to the constructs you need, so she includes an example macro to accomplish just that.
</p>]]></description>
      <pubDate>Fri, 02 Jun 2006 05:56:55 -0500</pubDate>
    </item>
  </channel>
</rss>
