<meta charset="utf-8"><div>Is the goal of 4.0 really to make Drupal a requirement?  I&#39;m a fan of being CMS agnostic, I mean lets be real here Drupal is awesome (and our CMS of choice) but it still has many less installs than Wordpress or Joomla.</div>

<div><br></div><div>My understanding is the main reason Drupal 7 is slower is the PDO/DBTNG so I would be reluctant to add more processing to the system, we already have a reputation for slowing things down. </div><br><div class="gmail_quote">

On Fri, May 7, 2010 at 2:07 PM, Matt Chapman <span dir="ltr">&lt;<a href="mailto:matt@ninjitsuweb.com">matt@ninjitsuweb.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I&#39;m currently reviewing the Entity API module as the possible missing piece:<br>
<br>
<a href="http://drupal.org/project/entity" target="_blank">http://drupal.org/project/entity</a><br>
<br>
All the Best,<br>
<br>
Matt Chapman<br>
Ninjitsu Web Development<br>
<font color="#888888"><br>
--<br>
The contents of this message should be assumed to be Confidential, and<br>
may not be disclosed without permission of the sender.<br>
</font><div><div></div><div class="h5"><br>
<br>
<br>
On Fri, May 7, 2010 at 10:42 AM, Joe Murray<br>
&lt;<a href="mailto:joe.murray@jmaconsulting.biz">joe.murray@jmaconsulting.biz</a>&gt; wrote:<br>
&gt; Just speculating still, but if DBTNG has a fairly cleanly severable<br>
&gt; interface, and CiviCRM core were to use it, there would be little bloat for<br>
&gt; CiviCRM for Joomla. CiviCRM for Joomla doesn&#39;t really get used as a<br>
&gt; development framework in the way that CiviCRM for Drupal does, just because<br>
&gt; of what the CMSes are good for. I get that there is an unnecessary new layer<br>
&gt; for CiviCRM which is a drag. I&#39;m still unclear if there might be an upside<br>
&gt; in terms of making CiviCRM integrated with Fields, Views, etc as &#39;native&#39;<br>
&gt; objects rather than as external objects with &#39;plug-ins&#39; written for them.<br>
&gt;<br>
&gt; Joe Murray, PhD<br>
&gt; President, JMA Consulting<br>
&gt; <a href="mailto:joe.murray@jmaconsulting.biz">joe.murray@jmaconsulting.biz</a><br>
&gt; skype JosephPMurray twitter JoeMurray<br>
&gt; 416.466.1281<br>
&gt;<br>
&gt;<br>
&gt; On Fri, May 7, 2010 at 1:32 PM, Sami Khan &lt;<a href="mailto:sami@etopian.net">sami@etopian.net</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; There are plenty of well defined PHP ORM projects out there; also<br>
&gt;&gt; another abstraction layer over PDO which is already a database<br>
&gt;&gt; abstraction layer just to do it the Drupal way doesn&#39;t make sense to me.<br>
&gt;&gt;<br>
&gt;&gt; Sami<br>
&gt;&gt;<br>
&gt;&gt; On Fri, 2010-05-07 at 09:56 -0700, Michael Prasuhn wrote:<br>
&gt;&gt; &gt; Well, what the database layer in Drupal 7 does and doesn&#39;t do is a<br>
&gt;&gt; &gt; little blurry sometimes. For the most part it functions as primarily a query<br>
&gt;&gt; &gt; builder and abstraction layer (now supporting 5 databases!*). It is not<br>
&gt;&gt; &gt; however, an ORM. In that sense DBTNG isn&#39;t really suited for any type of<br>
&gt;&gt; &gt; data structure over any other type. Drupal 7 is focusing some of the<br>
&gt;&gt; &gt; functionality of an ORM at the entity level, with it&#39;s Field API. At this<br>
&gt;&gt; &gt; point, the line between easily removed library and tightly coupled code is<br>
&gt;&gt; &gt; crossed, and that functionality isn&#39;t possible without moving most of the<br>
&gt;&gt; &gt; functionality into Drupal.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Could a simple ORM be built on top of DBTNG? I don&#39;t see why not, but at<br>
&gt;&gt; &gt; that point it&#39;s not really a &#39;Drupal like API&#39; anymore, and you&#39;d be back to<br>
&gt;&gt; &gt; where you started, although the ORM code would look more familiar to Drupal<br>
&gt;&gt; &gt; developers.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; -Mike<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; *MySQL, PostgreSQL, SQLite, Oracle, and MS SQL Server<br>
&gt;&gt; &gt; __________________<br>
&gt;&gt; &gt; Michael Prasuhn<br>
&gt;&gt; &gt; <a href="mailto:mike@mikeyp.net">mike@mikeyp.net</a><br>
&gt;&gt; &gt; <a href="http://mikeyp.net" target="_blank">http://mikeyp.net</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On May 7, 2010, at 6:12 AM, Joe Murray wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &gt; I&#39;m trying to get my head around architectural options for CiviCRM 4.0<br>
&gt;&gt; &gt; &gt; that might allow one to more easily leverage of &#39;Drupal as a developer<br>
&gt;&gt; &gt; &gt; framework&#39; as opposed to &#39;Drupal as user CMS&#39;. This would IMHO meet a<br>
&gt;&gt; &gt; &gt; CiviCRM goal of increasing its developer community.<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; I just want to talk about the database layer right now to keep things<br>
&gt;&gt; &gt; &gt; focussed. One of the frameworks being consider as a replacement for the PEAR<br>
&gt;&gt; &gt; &gt; library (DBDataObject and HTML Quickform in particular) is the Zend<br>
&gt;&gt; &gt; &gt; Framework. It uses PDO libraries. DBTNG for Drupal 7, as I understand it,<br>
&gt;&gt; &gt; &gt; also sits on top of PDO. I find Mike Prasuhn&#39;s information about the<br>
&gt;&gt; &gt; &gt; modularity of the Drupal 7 db layer to be very interesting. For those who<br>
&gt;&gt; &gt; &gt; don&#39;t know, CiviCRM currently uses a fairly traditional tiered architecture,<br>
&gt;&gt; &gt; &gt; and generates its data layer code from an XML representation of its data<br>
&gt;&gt; &gt; &gt; schema for the most part (some business layer logic bypasses the Data<br>
&gt;&gt; &gt; &gt; Application Object (DAO) layer by reading directly from the MySQL tables for<br>
&gt;&gt; &gt; &gt; optimization purposes, for example). I imagine that the DBTNG layer is<br>
&gt;&gt; &gt; &gt; focussed on supporting Drupal data structures, but I believe it has some<br>
&gt;&gt; &gt; &gt; support for creating access to arbitrary non-Drupal data stores as well,<br>
&gt;&gt; &gt; &gt; which CiviCRM might qualify as.<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; Is it remotely feasible to think of using DBTNG as the primary<br>
&gt;&gt; &gt; &gt; database layer for CiviCRM 4.0? What is the overhead of using for non-Drupal<br>
&gt;&gt; &gt; &gt; sites? Or is it better to imagine setting up access to the couple hundred<br>
&gt;&gt; &gt; &gt; tables in CiviCRM via DBTNG&#39;s external datasource structure, and then using<br>
&gt;&gt; &gt; &gt; that as a good way to integrate with fields, views and that good stuff?<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; Just trying to explore whether there is some common ground here.<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; Joe Murray, PhD<br>
&gt;&gt; &gt; &gt; President, JMA Consulting<br>
&gt;&gt; &gt; &gt; <a href="mailto:joe.murray@jmaconsulting.biz">joe.murray@jmaconsulting.biz</a><br>
&gt;&gt; &gt; &gt; skype JosephPMurray twitter JoeMurray<br>
&gt;&gt; &gt; &gt; 416.466.1281<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; consulting mailing list<br>
&gt;&gt; &gt; <a href="mailto:consulting@drupal.org">consulting@drupal.org</a><br>
&gt;&gt; &gt; <a href="http://lists.drupal.org/mailman/listinfo/consulting" target="_blank">http://lists.drupal.org/mailman/listinfo/consulting</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; consulting mailing list<br>
&gt; <a href="mailto:consulting@drupal.org">consulting@drupal.org</a><br>
&gt; <a href="http://lists.drupal.org/mailman/listinfo/consulting" target="_blank">http://lists.drupal.org/mailman/listinfo/consulting</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
consulting mailing list<br>
<a href="mailto:consulting@drupal.org">consulting@drupal.org</a><br>
<a href="http://lists.drupal.org/mailman/listinfo/consulting" target="_blank">http://lists.drupal.org/mailman/listinfo/consulting</a><br>
</div></div></blockquote></div><br>