<!--
RSS generated by JIRA (5.2.7#850-sha1:b2af0c8dc8537b36121c6a579fabbdf79fc919e5) at Wed May 22 03:18:33 UTC 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://www.doctrine-project.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+DCOM+AND+resolution+%3D+Unresolved+AND+assignee+%3D+jwage+ORDER+BY+priority+DESC&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://www.doctrine-project.org/jira/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Doctrine Project</title>
        <link>http://www.doctrine-project.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+DCOM+AND+resolution+%3D+Unresolved+AND+assignee+%3D+jwage+ORDER+BY+priority+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="2" total="2"/>
                <build-info>
            <version>5.2.7</version>
            <build-number>850</build-number>
            <build-date>21-02-2013</build-date>
        </build-info>
<item>
            <title>[DCOM-73] CodeGeneration using Doctrine\Common\Persistence\Mapping\ObjectMetadata</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-73</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;Currently we have tons of code in the ODM/ORMs regarding code generation that are ugly to extend and maintain. We should extract all them into a new component, for example named: doctrine-code-generator&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;It should be feed by only instances of Doctrine\Common\Persistence\Mapping\ObjectMetadata into a twig template.&lt;/li&gt;
	&lt;li&gt;A base template for an entity/document is shipped&lt;/li&gt;
	&lt;li&gt;Maybe ORM/ODM specific child templates or twig traits are necessary to handle writing annotations. This could also be done by adding hooks into the code-generation somehow.&lt;/li&gt;
	&lt;li&gt;Each entity of the user can provide its own template, for examples from a configurable directory &quot;code_templates/Vendor.ProjectBundle.Entity.User.twig&quot; to extend the base template and add own code.&lt;/li&gt;
	&lt;li&gt;As a perspective we should aim for 5.4 generating a trait so that you can have your entity &quot;class User 
{ use UserBase; }
&lt;p&gt;&quot;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
            <key id="13121">DCOM-73</key>
            <summary>CodeGeneration using Doctrine\Common\Persistence\Mapping\ObjectMetadata</summary>
                <type id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="beberlei">Benjamin Eberlei</reporter>
                        <labels>
                    </labels>
                <created>Mon, 24 Oct 2011 07:07:23 +0000</created>
                <updated>Thu, 16 Feb 2012 19:27:38 +0000</updated>
                                                    <fixVersion>2.3</fixVersion>
                                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-28] Extract Common Persistance Interfaces</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-28</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;I discussed this with jwage on symfony day cologne and this also came up during discussions with @dzuelke at IPC yesterday. So i hacked up a first patch for discussion that adds a Doctrine\Common\Persistance namespace and extracts the functionality all our 3 layers implement with regards to EntityManager/EntityRepository (and equivalents).&lt;/p&gt;

&lt;p&gt;Additionally i think it might make sense to also add an interface &quot;ObjectMetadata&quot; that has several getters-only that allow access to the field, identifier and association mapping information. This stuff is not necessarly compatible across layers when returned as its &quot;array&quot; representation, but for libraries hooking into the metadata (symfony admin generator) this might not even be necessary.&lt;/p&gt;</description>
                <environment></environment>
            <key id="12002">DCOM-28</key>
            <summary>Extract Common Persistance Interfaces</summary>
                <type id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="jwage">Jonathan H. Wage</assignee>
                                <reporter username="beberlei">Benjamin Eberlei</reporter>
                        <labels>
                    </labels>
                <created>Wed, 13 Oct 2010 02:50:50 +0000</created>
                <updated>Sat, 30 Jul 2011 13:03:50 +0000</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>4</watches>
                        <comments>
                    <comment id="15315" author="jwage" created="Tue, 15 Feb 2011 21:04:25 +0000"  >&lt;p&gt;Added the interfaces here &lt;a href=&quot;https://github.com/doctrine/common/commit/59e6b8c6edcb271622923035b687a063c2b47ce8&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/common/commit/59e6b8c6edcb271622923035b687a063c2b47ce8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I implemented them here in the mongodb-odm &lt;a href=&quot;https://github.com/doctrine/mongodb-odm/commit/8d02e8439fb6737de1e23e1953a643858a8a6c68&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/mongodb-odm/commit/8d02e8439fb6737de1e23e1953a643858a8a6c68&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and the ORM &lt;a href=&quot;https://github.com/doctrine/doctrine2/commit/68a40996841b1dbec3b8de5c1038809e5db512b7&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/doctrine2/commit/68a40996841b1dbec3b8de5c1038809e5db512b7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think we can add a few more methods to ClassMetadata interface that are always gonna exist between the different persistence layers. Let me know what you think and what you want to add.&lt;/p&gt;</comment>
                    <comment id="15324" author="guilhermeblanco" created="Tue, 15 Feb 2011 23:24:31 +0000"  >&lt;p&gt;Jon is working on this.&lt;/p&gt;</comment>
                    <comment id="15515" author="lsmith" created="Sat, 19 Mar 2011 15:44:47 +0000"  >&lt;p&gt;CouchDB ODM also has DocumentRepositry::findMany(array $ids)&lt;br/&gt;
Should we add that to the interface?&lt;/p&gt;</comment>
                    <comment id="15516" author="beberlei" created="Sat, 19 Mar 2011 17:44:01 +0000"  >&lt;p&gt;No, that method is only on the repository because CouchDB doesn&apos;t need persisters (yet). Its not part of the interfaceable public methods.&lt;/p&gt;</comment>
                    <comment id="15517" author="lsmith" created="Sat, 19 Mar 2011 17:52:48 +0000"  >&lt;p&gt;Not sure I understand. The method is used in DocumentRepository::findBy() as well as in PersistentIdsCollection::load. Seems unnecessary for that method to be public just for this. At any rate imho the method seems convenient and also allows for more efficient access in many RDBMS compared to the generic findBy($criteria) method. So it seems worthwhile adding it.&lt;/p&gt;</comment>
                    <comment id="15520" author="beberlei" created="Sun, 20 Mar 2011 05:23:35 +0000"  >&lt;p&gt;It doesn&apos;t matter what CouchDB uses internally on the DocumentRepository, i don&apos;t think this method is particularly useful in another context than CouchDBs use of Collections. In any case the method is just a proxy for findBy(array(&quot;id&quot; =&amp;gt; array(1, 2, 3, 4, 5, 6))); and i am not sure we need such a method on an interface just for convenience, Repository::find() use-case is much broader.&lt;/p&gt;</comment>
                    <comment id="15521" author="lsmith" created="Sun, 20 Mar 2011 05:30:18 +0000"  >&lt;p&gt;Actually using findMany($ids) ias clearly more efficient in CouchDB than using  findBy(array(&quot;id&quot; =&amp;gt; $ids));&lt;br/&gt;
The same applies to PHPCR, since going by the node path means you can go via the normal node API, rather than the search API.&lt;br/&gt;
So this is already 2 out of 3 examples and I do not know MongoDB enough to tell if they also have some specific API advantage.&lt;/p&gt;</comment>
                    <comment id="15522" author="beberlei" created="Sun, 20 Mar 2011 05:39:38 +0000"  >&lt;p&gt;Hm, you might be right. Ok, this should be included.&lt;/p&gt;

&lt;p&gt;What i am still pondering with is adding array $orderBy and $firstResult, $maxResults to findOneBy() and findBy() and findAll().&lt;/p&gt;

&lt;p&gt;@Jon: Would this be possible for MongoDB?&lt;/p&gt;

&lt;p&gt;It would not be possible for all use-cases in CouchDB, but for some it can work.&lt;/p&gt;</comment>
                    <comment id="15544" author="lsmith" created="Sun, 20 Mar 2011 15:35:45 +0000"  >&lt;p&gt;Just a super trivial pull to add this to the interface:&lt;br/&gt;
&lt;a href=&quot;https://github.com/doctrine/common/pull/11&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/common/pull/11&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="15548" author="lsmith" created="Mon, 21 Mar 2011 05:15:03 +0000"  >&lt;p&gt;also wondering if we want to include the idgenerator API in the interface?&lt;/p&gt;</comment>
                    <comment id="15549" author="beberlei" created="Mon, 21 Mar 2011 05:25:09 +0000"  >&lt;p&gt;Hm yes, i think that is necessary. At least the differentation between assigned and auto-generated ids is relevant for metadata queries.&lt;/p&gt;</comment>
                    <comment id="15559" author="jwage" created="Mon, 21 Mar 2011 09:18:12 +0000"  >&lt;p&gt;Yes, findMany() is possible with MongoDB.&lt;/p&gt;

&lt;p&gt;I think it would just be a proxy to:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function findMany(array $ids)
{
    &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;findBy(array(&apos;_id&apos; =&amp;gt; array(&apos;$in&apos; =&amp;gt; $ids)));
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="15560" author="beberlei" created="Mon, 21 Mar 2011 09:47:18 +0000"  >&lt;p&gt;Hm, What is this syntax? This is not conforming to the EntityRepository interface.&lt;/p&gt;

&lt;p&gt;The only two allowed methods are:&lt;/p&gt;

&lt;p&gt;IN Query:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$ids = array(...);
findBy(array(&apos;_id&apos; =&amp;gt; $ids)); 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Equals = Query:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$ids = 1234;
findBy(array(&apos;_id&apos; =&amp;gt; $id)); 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Everything else is not portable accross implementations and should only be able through DocumentManager::CreateQuery* sort of apis.&lt;/p&gt;</comment>
                    <comment id="15561" author="jwage" created="Mon, 21 Mar 2011 10:26:31 +0000"  >&lt;p&gt;To find by things in MongoDB you just give an array of key =&amp;gt; value pairs. It gets passed straight through to MongoDB. The $in syntax is just soemthing mongodb supports. It&apos;s not anything specific to Doctrine.&lt;/p&gt;</comment>
                    <comment id="16236" author="lsmith" created="Sat, 30 Jul 2011 13:03:50 +0000"  >&lt;p&gt;i want to heat this topic back up:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;findMany()&lt;/li&gt;
	&lt;li&gt;id generator API&lt;/li&gt;
&lt;/ul&gt;
</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10000">
                <name>Duplicate</name>
                                                <inwardlinks description="is duplicated by">
                            <issuelink>
            <issuekey id="11832">DCOM-23</issuekey>
        </issuelink>
                    </inwardlinks>
                            </issuelinktype>
                    </issuelinks>
                <attachments>
                    <attachment id="10824" name="dcom_persistence.diff" size="1992" author="beberlei" created="Wed, 13 Oct 2010 02:50:50 +0000" />
                </attachments>
            <subtasks>
        </subtasks>
        </item>
</channel>
</rss>