<?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>Sat, 18 May 2013 07:41:38 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: MongoDB Indexing, Part 1]]></title>
      <guid>http://www.phpdeveloper.org/news/19551</guid>
      <link>http://www.phpdeveloper.org/news/19551</link>
      <description><![CDATA[<p>
New on PHPMaster.com is the first part of their series about <a href="http://phpmaster.com/mongodb-indexing-1/">indexing in MongoDB</a>, a method for optimizing your collections to make querying them even faster. They cover the five main types of indexes and situations where they can help.
</p>
<blockquote>
Indexing is one of the more important concepts of working with MongoDB. A proper understanding is critical because indexing can dramatically increase performance and throughput by reducing the number of full documents to be read, thereby increasing the performance of our application. Because indexes can be bit difficult to understand, this two-part series will take a closer look at them.
</blockquote>
<p>
They look at the default "_id" index, secondary, compound, multikey and multikey compound indexes. Example documents and results are included as well as some of the options that can be set on the index types to tweak performance. They finish up the article with a look at some of the limitations and considerations to think about when using indexing, including that they cannot be used with regex queries.
</p>
Link: http://phpmaster.com/mongodb-indexing-1]]></description>
      <pubDate>Mon, 06 May 2013 11:50:44 -0500</pubDate>
    </item>
    <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[PHPMaster.com: Error Logging with MongoDB and Analog]]></title>
      <guid>http://www.phpdeveloper.org/news/17715</guid>
      <link>http://www.phpdeveloper.org/news/17715</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial from <i>Lorna Mitchell</i> introducing you to <a href="http://phpmaster.com/error-logging-with-mongodb-and-analog/">using Analog for error logging</a> in a MongoDb connection. Because of the way the tool (<a href="https://github.com/jbroadway/analog">Analog</a>) is designed, it could be used anywhere - she just uses the MongoDB connection as an example because it integrates easily and efficiently.
</p>
<blockquote>
<p>
MongoDB is an excellent fit for logging (and of course other things as well) for many reasons. For one, it is very VERY fast for writing data. It can perform writes asynchronously; your application wont hang because your logging routines are blocked. This allows you to centralize your logs which makes it easier to querying against them to find issues. Also, its query interface is easy to work with and is very flexible. You can query against any of the field names or perform aggregate functions either with map/reduce or MongoDB 2.2's upcoming aggregation framework.
</p>
<p>
This article will show how you can use existing code to add a logging library to your code and log errors to MongoDB. You'll also see how to query MongoDB from the command line and how to filter those queries to find the information you are interested in.
</p>
</blockquote>
<p>
Analog makes it simple to log information in an easy to use, self-contained, extensible kind of way, offering writers for multiple output formats including: files, the FirePHP plugin output, email, POSTing to another machine and sending to a syslog daemon. She also mentions the different logging levels the tool makes available and how to filter down your logging results based on them (searched by "equal to", "greater than" and grouped by level).
</p>]]></description>
      <pubDate>Thu, 22 Mar 2012 11:11:39 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Introduction to MongoDB]]></title>
      <guid>http://www.phpdeveloper.org/news/17048</guid>
      <link>http://www.phpdeveloper.org/news/17048</link>
      <description><![CDATA[<p>
PHPMaster.com has a new tutorial today for those wanting to get into the MongoDb document-driven (NoSQL) database but haven't known where to start. <a href="http://phpmaster.com/introduction-to-mongodb/">This tutorial</a> walks you through some of the basics including setup and configuration of both the server and PHP client side.
</p>
<blockquote>
There are a lot of implementations of the NoSQL concept, but one of the most famous and widely used NoSQL databases is MongoDB. I think it's one of the most interesting NoSQL databases available currently, and it's considered by many to be one of the easiest to use (which has helped it gain widespread adoption). In this article I'll introduce you to NoSQL with MongoDB. You'll learn how to install the MongoDB extension for PHP, and how to add, update, and retrieve document objects. 
</blockquote>
<p>
He starts with an introduction to MongoDB and links to <a href="http://www.mongodb.org/downloads">their site</a> to grab the latest version of the database. A few simple steps later (including a call to install the mongo PECL module) and your PHP install is ready to go. Code snippets are included showing how to connect to the server and insert/update/select document records.
</p>]]></description>
      <pubDate>Thu, 27 Oct 2011 08:27:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Philip Norton's Blog: Creating A Thumbnail Of A Word Document With PHP And LiveDocx]]></title>
      <guid>http://www.phpdeveloper.org/news/16904</guid>
      <link>http://www.phpdeveloper.org/news/16904</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Philip Norton</i> shares a method for <a href="http://www.hashbangcode.com/blog/creating-thumbnail-word-document-php-and-livedocx-598.html">creating a thumbnail of a Word document</a> with the help of PHP and <a href="http://framework.zend.com/manual/en/zend.service.livedocx.html">LiveDocx</a> (in this case, the component inside the Zend Framework).
</p>
<blockquote>
Creating Word document icons is very simple thanks to a service called LiveDocx. LiveDocx was created as a web service to allow the easy creation of most document formats from a simple template. However, it is possible to send a normal Word document as the template file and get an image of the file in return.
</blockquote>
<p>
You'll need a <a href="https://www.livedocx.com/user/account_registration.aspx">LiveDocx account</a> to be able to use the service - there's a <a href="http://www.livedocx.com/pub/pricing.aspx">free</a> option of their service that uses a shared server. Included in the post is a sample script that defines a LiveDocx connection, pulls in a local Word document for parsing and calls a "getBitmaps" method on the service to return the raw image data. This is pushed into an image (using <a href="http://php.net/gd">GD</a>) as a PNG.
</p>]]></description>
      <pubDate>Mon, 26 Sep 2011 08:50:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: The era of Object-Document Mapping]]></title>
      <guid>http://www.phpdeveloper.org/news/16568</guid>
      <link>http://www.phpdeveloper.org/news/16568</link>
      <description><![CDATA[<p>
On the PHP on Windows section of DZone.com today <i>Giorgio Sironi</i> has posted about a different sort of object mapping than is usually thought of with databases - <a href="http://css.dzone.com/articles/era-object-document-mapping">object-document mapping</a>.
</p>
<blockquote>
The Data Mapper pattern is a mechanism for persistence where the application model and the data source have no dependencies between each other. [...] But everytime we talk about the Data Mapper pattern, we assume there is a relational database on the other side of the persistence boundary. We always save objects; we always map them to MySQL or Postgres tables; but it's not mandatory.
</blockquote>
<p>
He talks about two projects, <a href="http://www.doctrine-project.org/projects/mongodb_odm">MongoDb_ODM</a> and <a href="http://www.doctrine-project.org/projects/couchdb_odm">CouchDb_ODM</a>, that the Doctrine project is working on to help make working with document-driven databases as simple as the usual ORMs. He includes a brief code snippet showing how the feature will work (hint: a namespace of Document instead of Entity). He lists some of the features - including the usual ORM capabilities, support for collections, cascade of persistence - and where you can get the latest code for it (from <a href="https://github.com/doctrine/couchdb-odm.git">github</a> and <a href="pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0BETA3">PEAR</a>
</p>]]></description>
      <pubDate>Fri, 08 Jul 2011 11:45:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: ZendCon Sessions Episode 041: Documents, Documents, Documents]]></title>
      <guid>http://www.phpdeveloper.org/news/16003</guid>
      <link>http://www.phpdeveloper.org/news/16003</link>
      <description><![CDATA[<p>
On the Zend Developer Zone today they've published the latest episode in their ZendCon Session series (as recorded at <a href="http://zendcon.com">ZendCon 2010</a>), a talk from <i>Matthew Weier O'Phinney</i> about document databases - <a href="http://devzone.zend.com/article/13105-ZendCon-Sessions-Episode-041-Documents-Documents-Documents">Documents, Documents, Documents</a>.
</p>
<blockquote>
Welcome to the ZendCon 2010 edition of the ZendCon Sessions. The ZendCon Sessions are live recordings of sessions that have been given at previous Zend Conferences. [...] In this series we will be releasing sessions from ZendCon 2010! This episode of The ZendCon Sessions was recorded live at ZendCon 2010 in Santa Clara, CA and features Matthew Weier O'Phinney giving his talk: "Documents, Documents, Documents"
</blockquote>
<p>
You can listen in one of a few ways - either via the <a href="http://devzone.zend.com/article/13105-ZendCon-Sessions-Episode-041-Documents-Documents-Documents">embedded player</a> on the Devzone site, by grabbing <a href="http://devzone.zend.com/content/audio/zendcon_sessions/zendcon_sessions_podcast_041.mp3">the mp3 itself</a> or by subscribing to <a href="http://feeds.feedburner.com/zendcon_sessions?format=xml">their feed</a> to get this and other great episodes.
</p>]]></description>
      <pubDate>Mon, 07 Mar 2011 08:47:05 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[ServerGrove Blog: Creating indexes for your Doctrine ODM documents with Symfony 2]]></title>
      <guid>http://www.phpdeveloper.org/news/15249</guid>
      <link>http://www.phpdeveloper.org/news/15249</link>
      <description><![CDATA[<p>
On the ServerGrove blog there's <a href="http://blog.servergrove.com/2010/10/07/creating-indexes-for-your-doctrine-odm-documents-with-symfony-2/">a new post</a> showing you how to create indexes for your <a href="http://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/indexes/en#indexes">Doctrine ODM documents</a> in a Symfony 2 application.
</p>
<blockquote>
Creating indexes in NoSQL / Document-based databases is quite different compared to traditional relational databases. Since the former are schema-less (there is no table creation), indexes do not get created when the collection or the document is created or inserted. Here is a quick tip that will create all the indexes defined in your documents when using Symfony 2 and Doctrine ODM for MongoDB. Indexes are a great way to speed up your queries, in fact, it is a crime not to include them in your documents.
</blockquote>
<p>
Adding the index is as easy as putting a new annotation on the property in its document class (for @Index) and run a bit of code in Symfony to build it out. The two lines you'll need to execute are included in the post.
</p>]]></description>
      <pubDate>Fri, 08 Oct 2010 08:24:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Creating PDF Documents with Zend Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/15053</guid>
      <link>http://www.phpdeveloper.org/news/15053</link>
      <description><![CDATA[<p>
On the Zend Developer Zone there's <a href="http://devzone.zend.com/article/12492-Creating-PDF-Documents-with-Zend-Framework">a new post</a> by <i>Vikram Vaswani</i> about a method for creating PDF files directly from a Zend Framework application (hint: it uses <a href="http://framework.zend.com/manual/en/zend.pdf.html">Zend_Pdf</a>).
</p>
<blockquote>
PHP comes with a number of options to help developers dynamically generate PDF files from within their applications. The Haru and PDFlib extensions offer a complete API for dynamic PDF generation, and there also exist a number of open-source PHP components that can be used for the same purpose. This article will introduce you to one such component, the Zend_Pdf component that ships as part of the Zend Framework, and illustrate how it can be used to perform sophisticated PDF operations from within a PHP application.
</blockquote>
<p>
The tutorial walks you through some of the introductory steps to using the component (outside of the framework) and create a sample PDF with some basic text. It gets more technical by adding in pictures, text wrapping, drawing lines and shapes, styling text and using things like the My_Pdf_Table feature to easily create tables. There's even a bit at the end about using the properties of the file to set things like title, subject and author.
</p>]]></description>
      <pubDate>Tue, 31 Aug 2010 14:27:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jonathan Wage's Blog: Blending the Doctrine ORM and MongoDB ODM]]></title>
      <guid>http://www.phpdeveloper.org/news/15026</guid>
      <link>http://www.phpdeveloper.org/news/15026</link>
      <description><![CDATA[<p>
On his blog today <i>Jonathan Wage</i> has <a href="http://www.jwage.com/2010/08/25/blending-the-doctrine-orm-and-mongodb-odm/">posted a tip</a> on getting MongoDB connections and queries to work through the Doctrine ORM layer:
</p>
<blockquote>
Since the start of the <a href="http://www.doctrine-project.org/projects/mongodb_odm">Doctrine MongoDB Object Document Mapper</a> project people have asked how it can be integrated with the <a href="http://www.doctrine-project.org/projects/orm">ORM</a>. This blog post demonstrates how you can integrate the two transparently, maintaining a clean domain model. This example will have a Product that is stored in MongoDB and the Order stored in a MySQL database.
</blockquote>
<p>
His code shows how to define the document and entity for the connection (a Product and Order) and creating an event subscriber to lazy load the product. He creates a sample Product and an Order for it and save them to the database. He also includes code to pull an order back out by its ID number and get an Order object back out (with Product data inside).
</p>]]></description>
      <pubDate>Thu, 26 Aug 2010 13:34:40 -0500</pubDate>
    </item>
  </channel>
</rss>
