<?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>Thu, 23 May 2013 03:51:57 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Bradley Holt: Entity Relationships in a Document Database at ZendCon 2012 (Video & Slides)]]></title>
      <guid>http://www.phpdeveloper.org/news/18766</guid>
      <link>http://www.phpdeveloper.org/news/18766</link>
      <description><![CDATA[<p>
If you weren't able to attend this year's <a href="http://zendcon.com">ZendCon</a> conference and wanted to see <i>Bradley Holt</i>'s talk about entity relationships and document databases, you're in luck - he's posted both <a href="http://bradley-holt.com/2012/11/entity-relationships-in-a-document-database-at-zendcon-2012/">the video and slides</a> to his site. Here's his summary of the session:
</p>
<blockquote>
Unlike relational databases, document databases like CouchDB and MongoDB do not directly support entity relationships. This talk will explore patterns of modeling one-to-many and many-to-many entity relationships in a document database. These patterns include using an embedded JSON array, relating documents using identifiers, using a list of keys, and using relationship documents. This talk will explore how these entity relationship patterns equate to how entities are joined in a relational database. We'll take a look at the relevant differences between document databases and relational databases. For example, document databases do not have tables, each document can have its own schema, there is no built-in concept of relationships between documents, views/indexes are queried directly instead of being used to optimize more generalized queries, a column within a result set can contain a mix of logical data types, and there is typically no support for transactions across document boundaries.
</blockquote>
<p>
He also includes links to two of the tools he mentions in the talk - <a href="http://docs.doctrine-project.org/projects/doctrine-couchdb/">Doctrine CouchDB</a> and the <a href="http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/">Doctrine MongoDB ORM</a>.
</p>]]></description>
      <pubDate>Mon, 19 Nov 2012 10:03:55 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Giorgio Sironi's Blog: Doctrine 2 now has lazy loading]]></title>
      <guid>http://www.phpdeveloper.org/news/13013</guid>
      <link>http://www.phpdeveloper.org/news/13013</link>
      <description><![CDATA[<p>
As is mentioned in <A href="http://giorgiosironi.blogspot.com/2009/08/doctrine-2-now-has-lazy-loading.html">this new post</a> to <i>Giorgio Sironi</i>'s blog, the latest version of Doctrine now includes lazy loading functionality.
</p>
<blockquote>
Lazy loading is the capability of performing a expensive operation on demand, only when it reveals necessary from a client request. [...] In <a href="http://trac.doctrine-project.org/wiki/Doctrine2.0">Doctrine 2</a> I made some architectural choices implementing the proxy approach, which substitute a subclassing object to every association which is not eager-loaded.
</blockquote>
<p>
There's two main places you can see these differences - in the one/many to one associations dynamic proxies and collection interface.
</p>]]></description>
      <pubDate>Fri, 07 Aug 2009 11:07:37 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP-GTK Community Site: Building a submenu in a GtkMenubar]]></title>
      <guid>http://www.phpdeveloper.org/news/6834</guid>
      <link>http://www.phpdeveloper.org/news/6834</link>
      <description><![CDATA[<p>
The PHP-GTK Community site is back again today with <a href="http://www.php-gtk.eu/code-snippets/overview-gtkmenubar-submenu">another quick tutorial</a> showing how to build a submenu with the help of the <a href="http://www.php-gtk.eu/code-snippets/overview-gtkmenubar">GtkMenubar</a> widget.
</p>
<p>
It's broken us into the key sections - details, a visual tree of the structure, the logic tree and relationships, and, finally the source code. It's a pretty simple process of creating the menu and appending the elements onto it, much like a normal drop down menu. The key is in the set_submenu function, creating a new object for the code to append the submenu elements to. The rest is just simple appends.
</p>
<p>
They've also <a href="http://www.php-gtk.eu/files/gtk-menubar-overview-submenu.png">included a screenshot</a> to illustrate the end result.
</p>]]></description>
      <pubDate>Wed, 06 Dec 2006 08:55:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Nefarious Designs: Object-Oriented PHP Part 3: Taking Relationships Further]]></title>
      <guid>http://www.phpdeveloper.org/news/6111</guid>
      <link>http://www.phpdeveloper.org/news/6111</link>
      <description><![CDATA[<p>
Nefarious Designs has posted <a href="http://nefariousdesigns.co.uk/archive/2006/08/object-oriented-php-part-3-taking-relationships-further/">the next part</a> of their "Object-Oriented PHP" series today, the third part looking at how to take the relationships (discussed in <a href="http://www.phpdeveloper.org/news/6100">part two</a>) even further.
</p>
<blockquote>
In "<a href="http://nefariousdesigns.co.uk/archive/2006/08/object-oriented-php-part-1-definition/">Part 1: Definition</a>" we took a look at defining objects and classes in PHP. In "<a href="http://nefariousdesigns.co.uk/archive/2006/08/object-oriented-php-part-2-relationships/">Part 2: Relationships</a>" we looked at linking our objects and classes together. In part 3 I'm going to add to those relationships by looking at visibility, polymorphism and the scope resolution operator.
</blockquote>
<p>
He <a href="http://nefariousdesigns.co.uk/archive/2006/08/object-oriented-php-part-3-taking-relationships-further/">starts off with</a> a look at access modifiers (private, public, protected) on both attributes and methods. Next is a look at polymorphism with an example of using a getHTML function in both a base formElement class and the child class of textarea. He then talks about the scope resolution operator (::) and its use in parent/child relationships and in PHP5's scope.
</p>]]></description>
      <pubDate>Wed, 23 Aug 2006 06:33:31 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Nefarious Designs: Object-Oriented PHP Part 2: Relationships]]></title>
      <guid>http://www.phpdeveloper.org/news/6100</guid>
      <link>http://www.phpdeveloper.org/news/6100</link>
      <description><![CDATA[<p>
Nefarious Designs has posted <a href="http://nefariousdesigns.co.uk/archive/2006/08/object-oriented-php-part-2-relationships/">part two</a> of their look at the object-oriented functionality, this time, there's a focus on the relationships objects and their friends have.
</p>
<blockquote>
<p>
Following on from my posts "Object-Oriented Concepts" and "Object-Oriented Javascript", I'm going to take a look at OOP in PHP.
</p>
In "Part 1: Definition" we took a look at defining objects and classes in PHP. In part 2 I'm going to look at the most important part of any object-oriented system - the relationships.
</p>
</blockquote>
<p>
They <a href="http://nefariousdesigns.co.uk/archive/2006/08/object-oriented-php-part-2-relationships/">look at</a> inheritance, association, aggregation, and references. Code examples are sprinkled liberally to help illustrate the points.
</p>]]></description>
      <pubDate>Mon, 21 Aug 2006 18:06:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPit.net: Taking a first look at the AutoCRUD for PHP library]]></title>
      <guid>http://www.phpdeveloper.org/news/5509</guid>
      <link>http://www.phpdeveloper.org/news/5509</link>
      <description><![CDATA[<p>
PHPit.net brings yet another great tutorial your way with this <a href="http://www.phpit.net/article/first-look-autocrud-for-php-library/">first look</a> at the AutoCRUD library for PHP - a database abstraction layer to help with some of the more mundane tasks (create/read/update/delete) of dealing with your data.
</p>
<quote>
<i>
Welcome to this article on the AutoCRUD for PHP library. This library is a new database library specifically for MySQL, written by yours truly. The reason that this library is only compatible with MySQL is that I very rarely need to use another database, and I really wanted to focus on one database. It's possible that the library might get support for other databases in the future, but for now it's strictly MySQL only.
</i>
</quote>
<p>
<a href="http://www.phpit.net/article/first-look-autocrud-for-php-library/">The tutorial</a> provides a quick introduction to the functionality of the library - including built-in support for unique keys, table-object generation on the fly, and the benefit of being fully unit tested. Next up, the setup - there's some sample SQL to plug in to follow with the examples and the starting code to get the class included and working. They look at basic crud functionality, with a highlight on selecting, and the relationship handling abilities built-in.
</p>]]></description>
      <pubDate>Mon, 05 Jun 2006 06:22:29 -0500</pubDate>
    </item>
  </channel>
</rss>
