<?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, 24 May 2012 10:14:06 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[DevShed: Building an ORM in PHP: Domain Modeling]]></title>
      <guid>http://www.phpdeveloper.org/news/17159</guid>
      <link>http://www.phpdeveloper.org/news/17159</link>
      <description><![CDATA[<p>
Continuing on from the <a href="http://phpdeveloper.org/news/17146">first part</a> of their series, DevShed has posted part two of their "Building an ORM in PHP" series. This latest tutorial <a href="http://www.devshed.com/c/a/MySQL/Building-an-ORM-in-PHP-Domain-Modeling/">focuses on domain modeling</a> (and collection handling).
</p>
<blockquote>
In that first part, I implemented the ORM's data access and mapping layers. And as you'll surely recall, the entire implementation process was pretty straightforward and easy to follow. Of course, in its current state the ORM is still far from a fully-functional structure. We need to add some additional components to it, such as a domain model and the classes responsible for handling collections of entities (remember that the ORM relies heavily on the data mapper pattern to do its business properly).
</blockquote>
<p>
He stays with his "simple blog" example and shows domain models (based on an abstract entity) for Entries, Comments and Authors. His containers extend the Countable, IteratorAggregate and ArrayAccess interfaces to give them some extra abilities.
</p>]]></description>
      <pubDate>Tue, 22 Nov 2011 16:46:10 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Developer.com: Doctrine: Object Relational Mapping for Your PHP Development]]></title>
      <guid>http://www.phpdeveloper.org/news/14645</guid>
      <link>http://www.phpdeveloper.org/news/14645</link>
      <description><![CDATA[<p>
New on Developer.com today there's a <a href="http://www.developer.com/db/article.php/3887336/article.htm">new article</a> looking at one of the more powerful ORM tools available for PHP - <a href="http://www.doctrine-project.org/">Doctrine</a>.
</p>
<blockquote>
Because of the relational database's pivotal role in driving Web applications, a great deal of time and effort has been put into creating tools that not only simplify the task of mapping database tables to a programming language's object-oriented class structure, but also facilitate the management of your data and schemas over the project lifecycle. [...] The PHP community also has a powerful database integration tool at their disposal: a project known as <a href="http://www.doctrine-project.org/">Doctrine</a>. 
</blockquote>
<p>
They help you get started with this powerful tool by showing you how to get it installed, create a sample schema and loading some fixtures (base data). There's also a quick snippet of code showing you how to grab information from a sample user table and display the name of the user.
</p>]]></description>
      <pubDate>Mon, 14 Jun 2010 10:22:06 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Doctrine Blog: Doctrine 1.0.8 and 1.1.0-RC2 Released]]></title>
      <guid>http://www.phpdeveloper.org/news/12055</guid>
      <link>http://www.phpdeveloper.org/news/12055</link>
      <description><![CDATA[<p>
<i>Guilherme Blanco</i> passed along a note about the latest releases from the Doctrine project, <a href="http://www.doctrine-project.org/blog/doctrine-1-0-8-and-1-1-0-rc2-released">Doctrine 1.0.8 and 1.1.0-RC2</a>:
</p>
<blockquote>
Today I am happy to tell you that we have two new versions of Doctrine available for you to use. The first is the monthly maintenance release for Doctrine 1.0 and the second is another release candidate for the newest major version of Doctrine, 1.1. As always you can grab them from the <a href="http://www.doctrine-project.org/download">downloads page</a>.
</blockquote>
<p>
Updates in these two versions include a few backported fixes from 1.1, updates to the Doctrine_Query::count() method for optimization, and several fixes in the Release Candidate in preparation for the next release. You can see the full Changelogs here: <a href="http://www.doctrine-project.org/change_log/1_0_8">1.0.8</a> and <a href="http://www.doctrine-project.org/change_log/1_1_0_RC2">1.1.0-RC2</a>.
</p>]]></description>
      <pubDate>Tue, 03 Mar 2009 10:24:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Seastian Bergmann's Blog: Object-Relational Behavioral Patterns]]></title>
      <guid>http://www.phpdeveloper.org/news/11956</guid>
      <link>http://www.phpdeveloper.org/news/11956</link>
      <description><![CDATA[<p>
<i>Seastian Bergmann</i> has added some new features to the <a href="http://github.com/sebastianbergmann/php-object-freezer/">Object_Freezer</a> library (you can read more about it <a href="http://sebastian-bergmann.de/archives/831-Freezing-and-Thawing-PHP-Objects.html">here</a>) - some new object-relational behavioral patterns.
</p>
<p>
The three patterns are from <i>Martin Fowler</i>'s <a href="http://martinfowler.com/books.html#eaa">Patterns of Enterprise Application Architecture</a> book:
</p>
<ul>
<li><a href="http://martinfowler.com/eaaCatalog/unitOfWork.html">Unit of Work</a> - maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.
<li><a href="http://martinfowler.com/eaaCatalog/identityMap.html">Identity Map</a> - each object gets loaded only once by keeping every loaded object in a map
<li><a href="http://martinfowler.com/eaaCatalog/lazyLoad.html">Lazy Load</a> - object that doesn't contain all of the data you need but knows how to get it.
</ul>]]></description>
      <pubDate>Mon, 16 Feb 2009 12:08:47 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: PHP Object-Relational Mapping: ORM or ROM?]]></title>
      <guid>http://www.phpdeveloper.org/news/11186</guid>
      <link>http://www.phpdeveloper.org/news/11186</link>
      <description><![CDATA[<p>
On the PHPClasses.org blog today <i>Manuel Lemos</i> has <a href="http://www.phpclasses.org/blog/post/82-PHP-ObjectRelational-Mapping-ORM-or-ROM.html">posted a look</a> at ORM - what it is and how you can use it to improve your applications.
</p>
<blockquote>
Object-Relational Mapping, usually referred as ORM, is a software development approach to treat data stored in relational (SQL) database table records as if they were objects. Basically we can create classes with variables that represent fields of a database table. To insert a table record you need to create an object of the class, assign the variable values, and call a function of the class that takes care of inserting the table record
</blockquote>
<p>
He illustrates what it is (brief code samples) and some of the approaches that developers have taken to implementing it. He suggests, however, that they should truely be called ROM (Relational Object Mapping) libraries rather than ORM due to the fact that they map an object (the database tables) back in to PHP objects. He finishes with a list of a few ORM resources and libraries including the one that helps power the PHPClasses website, <a href="http://www.metastorage.net/">Metastorage</a>.
</p>]]></description>
      <pubDate>Fri, 10 Oct 2008 12:09:37 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Developer Tutorials Blog: Getting Started with ORM in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10616</guid>
      <link>http://www.phpdeveloper.org/news/10616</link>
      <description><![CDATA[<p>
A <a href="http://www.developertutorials.com/blog/php/getting-started-with-orm-in-php-331/">recent post</a> on the Developer Tutorials blog takes a look at a fundamental part of several of the PHP (and other language) frameworks out there - the Object Relational Mapping (ORM) layer for database access.
</p>
<blockquote>
Instead of direct database access, an ORM layer in a PHP framework can make "objects" stored in a database behave like actual objects from a programming perspective - for example, creating a new "car" stored in the database could involve a call to $car->new(). By abstracting actual database access, web development can be more productive and result in more reliable applications. Here's a quick intro to ORM in PHP.
</blockquote>
<p>
They <a href="http://www.developertutorials.com/blog/php/getting-started-with-orm-in-php-331/">talk about</a> ORM's role in how applications interface with data (abstracted out to objects) and some examples of it in current frameworks - <a href="http://www.cakephp.org">CakePHP</a> and <a href="http://www.symfony.com">Symfony</a>.
</p>]]></description>
      <pubDate>Wed, 16 Jul 2008 09:35:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: PHP and your domain model with Doctrine ORM]]></title>
      <guid>http://www.phpdeveloper.org/news/9535</guid>
      <link>http://www.phpdeveloper.org/news/9535</link>
      <description><![CDATA[<p>
On the Zend Developer Zone, <i>jonwage</i> has <a href="http://devzone.zend.com/article/3028-PHP-and-your-domain-model-with-Doctrine-ORM">posted about</a> an ORM (Object-Relational mapping) he came across that can help abstract out your interface with your backend database - <a href="http://www.phpdoctrine.org/">Doctrine</a>.
</p>
<blockquote>
One of its key features is the ability to optionally write database queries in an OO (object oriented) SQL-dialect called DQL inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains a maximum of flexibility without requiring needless code duplication.
</blockquote>
<p>
The <a href="http://www.phpdoctrine.org/">project's page</a> gives the full details on the features it offers and has links to the <a href="http://www.phpdoctrine.org/download">latest downloads</a> so you can try it out for yourself. There's even <a href="http://www.phpdoctrine.org/blog">a blog</a> you can subscribe to to keep up to date.
</p>]]></description>
      <pubDate>Thu, 31 Jan 2008 08:40:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: SQL Puzzle]]></title>
      <guid>http://www.phpdeveloper.org/news/9176</guid>
      <link>http://www.phpdeveloper.org/news/9176</link>
      <description><![CDATA[<p>
<i>Sebastian Bergmann</i> has figured out <a href="http://sebastian-bergmann.de/archives/721-SQL-Puzzle.html">half of the puzzle</a> he was working on but is still a bit stuck on the second half. He knows how to mine information from Subversion, but not they queries to ask the database for the info he needs.
</p>
<blockquote>

I have written a small <a href="http://www.php.net/">PHP</a> script (the initial version of the script can be found <a href="http://shiflett.org/blog/2007/dec/php-advent-calendar-day-3">here</a>) to import the relevant data from a <a href="http://subversion.tigris.org/">Subversion</a> repository into the following tables of a relational database. [...] What I need now is two queries to ask the database
</blockquote>
<p>
There's already been <a href="http://sebastian-bergmann.de/archives/721-SQL-Puzzle.html#comments">tons of comments</a> in an effort to help him out, but it doesn't look quite like he's resolved the issue just yet.
</p>
<p>
<b>UPDATE 12.06.207</b>: Seems he's <a href="http://sebastian-bergmann.de/archives/724-BugMiner.html">found a solution</a> that'll work for him - <a href="http://www.phpunit.de/browser/svn_bug_miner">here's the script</a>.
</p>]]></description>
      <pubDate>Wed, 05 Dec 2007 08:46:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Building a Relational Content Management System in PHP/MySQL]]></title>
      <guid>http://www.phpdeveloper.org/news/4545</guid>
      <link>http://www.phpdeveloper.org/news/4545</link>
      <description><![CDATA[From DevShed today, there's <a href="http://www.devshed.com/c/a/PHP/Building-a-Relational-Content-Management-System-in-PHP-MySQL/">a new tutorial</a> that will help you create a relational content management system with PHP and MySQL.
<p>
<quote>
<i>
This article will show you how to build a simple relational content management system. What is a relational CMS you ask? Well, a relational CMS lets you create articles that have child articles.
<p>
This works similiar to other CMSes which have categories and then articles; we will just combine them together to be more relational. This also helps to create a nice search engine friendly site quickly.
</i>
</quote>
<p>
<a href="http://www.devshed.com/c/a/PHP/Building-a-Relational-Content-Management-System-in-PHP-MySQL/">The tutorial</a> starts off immediately, giving you the SQL layout to start importing into your database. It assumes you have a base-level understanding of how to use both PHP and MySQL on your platform of choice. From there, it gives you the common functions to get the system working, and follows with a "howto" on managing the articles in the system.]]></description>
      <pubDate>Thu, 22 Dec 2005 06:47:07 -0600</pubDate>
    </item>
  </channel>
</rss>

