<!--
RSS generated by JIRA (5.2.7#850-sha1:b2af0c8dc8537b36121c6a579fabbdf79fc919e5) at Mon May 20 17:36:22 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+priority+%3D+Minor+ORDER+BY+key+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+priority+%3D+Minor+ORDER+BY+key+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="8" total="8"/>
                <build-info>
            <version>5.2.7</version>
            <build-number>850</build-number>
            <build-date>21-02-2013</build-date>
        </build-info>
<item>
            <title>[DCOM-191] Wrong inflection for &quot;identity&quot;</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-191</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;console doctrine:generate:entities&lt;/p&gt;

&lt;p&gt;For an association named &quot;identities&quot;, the code generator creates the two methods&lt;br/&gt;
addIdentitie() and removeIdentitie() - apparently the inflector doesn&apos;t catch that it should be addIdentity and removeIdentity.&lt;/p&gt;</description>
                <environment>OS X and Linux, PHP 5.4.x</environment>
            <key id="14838">DCOM-191</key>
            <summary>Wrong inflection for &quot;identity&quot;</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="tom">Tom Vogt</reporter>
                        <labels>
                    </labels>
                <created>Tue, 7 May 2013 17:43:28 +0000</created>
                <updated>Tue, 7 May 2013 17:43:28 +0000</updated>
                                    <version>2.3</version>
                                                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-179] Underscore at the end of a label is not working with annotations</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-179</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;use Zend\Form\Annotation;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;...&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;works:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;@Annotation\Options(
{&quot;label&quot;:Namespace\Entity::LABEL}
&lt;p&gt;)&lt;br/&gt;
or&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;@Annotation\Options(
{&quot;label&quot;:Namespace\Entity::_LABEL}
&lt;p&gt;)&lt;br/&gt;
or&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;@Annotation\Options(
{&quot;label&quot;:Namespace\Entity::LA_BEL}
&lt;p&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;works not:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;@Annotation\Options(
{&quot;label&quot;:Namespace\Entity::LABEL_}
&lt;p&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Error message:&lt;/p&gt;

&lt;p&gt;/vendor/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationException.php:52&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Semantical Error&amp;#93;&lt;/span&gt; Couldn&apos;t find constant Namespace\Entity\::LABEL, property ...&lt;/p&gt;

&lt;p&gt;The _ at the end is missing.&lt;/p&gt;</description>
                <environment>apache2, php 5.4, mysql</environment>
            <key id="14658">DCOM-179</key>
            <summary>Underscore at the end of a label is not working with annotations</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="exoon">exoon</reporter>
                        <labels>
                    </labels>
                <created>Sun, 3 Mar 2013 10:13:57 +0000</created>
                <updated>Sun, 3 Mar 2013 10:16:00 +0000</updated>
                                    <version>2.3</version>
                                <fixVersion>2.3</fixVersion>
                                <component>Annotations</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-168] ignoredAnnotationNames doesn&apos;t work in Annotation loop</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-168</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;I&apos;m just starting out with Doctrine, so my setup is a bit messy, but hopefully someone can figure out what is relevant from all my code.&lt;/p&gt;

&lt;p&gt;Basically, I&apos;m using Annotations on Doctrine ORM, and am integrating with Gedmo for several of their extensions.&lt;/p&gt;

&lt;p&gt;I can run the CLI tool and update the schema, but when running via my web server, I&apos;m getting the following error:&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;
object(Doctrine\Common\Annotations\AnnotationException)[150]
  &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; &apos;message&apos; =&amp;gt; string &apos;[Semantical Error] The annotation &lt;span class=&quot;code-quote&quot;&gt;&quot;@Entity&quot;&lt;/span&gt; in class Innertube\Models\Device was never imported. Did you maybe forget to add a &lt;span class=&quot;code-quote&quot;&gt;&quot;use&quot;&lt;/span&gt; statement &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; annotation?&apos; (length=163)
  &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &apos;string&apos; (Exception) =&amp;gt; string &apos;&apos; (length=0)
  &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; &apos;code&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 0
  &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationException.php&apos; (length=211)
  &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 52
  &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &apos;trace&apos; (Exception) =&amp;gt; 
    array
      0 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Annotations/DocParser.php&apos; (length=201)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 592
          &apos;function&apos; =&amp;gt; string &apos;semanticalError&apos; (length=15)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Annotations\AnnotationException&apos; (length=47)
          &apos;type&apos; =&amp;gt; string &apos;::&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      1 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Annotations/DocParser.php&apos; (length=201)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 533
          &apos;function&apos; =&amp;gt; string &apos;Annotation&apos; (length=10)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Annotations\DocParser&apos; (length=37)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      2 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Annotations/DocParser.php&apos; (length=201)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 297
          &apos;function&apos; =&amp;gt; string &apos;Annotations&apos; (length=11)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Annotations\DocParser&apos; (length=37)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      3 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationReader.php&apos; (length=208)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 151
          &apos;function&apos; =&amp;gt; string &apos;parse&apos; (length=5)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Annotations\DocParser&apos; (length=37)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      4 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Annotations/CachedReader.php&apos; (length=204)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 86
          &apos;function&apos; =&amp;gt; string &apos;getClassAnnotations&apos; (length=19)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Annotations\AnnotationReader&apos; (length=44)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      5 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php&apos; (length=205)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 61
          &apos;function&apos; =&amp;gt; string &apos;getClassAnnotations&apos; (length=19)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Annotations\CachedReader&apos; (length=40)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      6 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php&apos; (length=202)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 112
          &apos;function&apos; =&amp;gt; string &apos;loadMetadataForClass&apos; (length=20)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\ORM\Mapping\Driver\AnnotationDriver&apos; (length=44)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      7 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php&apos; (length=228)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 302
          &apos;function&apos; =&amp;gt; string &apos;doLoadMetadata&apos; (length=14)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\ORM\Mapping\ClassMetadataFactory&apos; (length=41)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      8 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php&apos; (length=228)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 205
          &apos;function&apos; =&amp;gt; string &apos;loadMetadata&apos; (length=12)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory&apos; (length=64)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      9 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/orm/lib/Doctrine/ORM/EntityManager.php&apos; (length=187)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 268
          &apos;function&apos; =&amp;gt; string &apos;getMetadataFor&apos; (length=14)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory&apos; (length=64)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      10 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/libraries/lerteco_framework/libraries/vendor-composer/doctrine/orm/lib/Doctrine/ORM/EntityManager.php&apos; (length=187)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 682
          &apos;function&apos; =&amp;gt; string &apos;getClassMetadata&apos; (length=16)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\ORM\EntityManager&apos; (length=26)
          &apos;type&apos; =&amp;gt; string &apos;-&amp;gt;&apos; (length=2)
          &apos;args&apos; =&amp;gt; 
            array
              ...
      11 =&amp;gt; 
        array
          &apos;file&apos; =&amp;gt; string &apos;/Users/jshannon/Documents/Work/Projects/InnerTube/Repo/web/packages/lerteco_innertube/api/routes/devices.php&apos; (length=108)
          &apos;line&apos; =&amp;gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 16
          &apos;function&apos; =&amp;gt; string &apos;getRepository&apos; (length=13)
          &apos;class&apos; =&amp;gt; string &apos;Doctrine\ORM\EntityManager&apos; (length=26)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The call that initiates this is getRepository(), which IS NOT in the CLI.&lt;/p&gt;

&lt;p&gt;I&apos;ve tracked it down to the fact that DocParser is not getting the list of names to ignore.&lt;/p&gt;

&lt;p&gt;Oddly, it gets it the first time that it&apos;s called by AnnotationReader. However, DocParser-&amp;gt;parse() calls $this-&amp;gt;Annotations(), which calls $this-&amp;gt;Annotation(), calls $this-&amp;gt;collectAnnotationMetadata(), which then creates a new parser &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;self::$metadataParser = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; self();&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt; and eventually parses it &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;self::$metadataParser-&amp;gt;parse()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;, but DOES NOT pass its ignorednames. &lt;/p&gt;

&lt;p&gt;This seems like an oversight, but it clearly works for a lot of people. My configuration code is:&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;if&lt;/span&gt; (self::$isDevMode) {
			$cache = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\Common\Cache\ArrayCache;
		} &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
			$cache = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\Common\Cache\ApcCache;
		}

		\Doctrine\Common\Annotations\AnnotationReader::addGlobalIgnoredName(&apos;&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;&apos;);

		AnnotationRegistry::registerFile(__DIR__ . &lt;span class=&quot;code-quote&quot;&gt;&quot;/vendor-composer/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php&quot;&lt;/span&gt;);
		\Gedmo\DoctrineExtensions::registerAnnotations();

		

		$annotationReader = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\Common\Annotations\AnnotationReader();
		$cachedAnnotationReader = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\Common\Annotations\CachedReader($annotationReader, $cache);



		$annotationDriver = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\ORM\Mapping\Driver\AnnotationDriver($cachedAnnotationReader, self::$namespaceArray);

		$config = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\ORM\Configuration;
		$config-&amp;gt;setProxyNamespace(&apos;Proxy&apos;);
		$config-&amp;gt;setAutoGenerateProxyClasses(self::$isDevMode); &lt;span class=&quot;code-comment&quot;&gt;// &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; can be based on production config.
&lt;/span&gt;		&lt;span class=&quot;code-comment&quot;&gt;// register metadata driver
&lt;/span&gt;		$config-&amp;gt;setMetadataDriverImpl($annotationDriver);
		&lt;span class=&quot;code-comment&quot;&gt;// use our allready initialized cache driver
&lt;/span&gt;		$config-&amp;gt;setMetadataCacheImpl($cache);
		$config-&amp;gt;setQueryCacheImpl($cache);

		&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (defined(&apos;DIR_FILES_CACHE&apos;)) {
			$config-&amp;gt;setProxyDir(DIR_FILES_CACHE);
		} &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
			$config-&amp;gt;setProxyDir(sys_get_temp_dir());
		}

		&lt;span class=&quot;code-comment&quot;&gt;// create event manager and hook prefered extension listeners
&lt;/span&gt;		$evm = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Doctrine\Common\EventManager();

		$prefix = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; TablePrefix(&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;);
		$prefix-&amp;gt;useNamespace(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;);
		$evm-&amp;gt;addEventListener(\Doctrine\ORM\Events::loadClassMetadata, $prefix);


		$blameableListener = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Gedmo\Blameable\BlameableListener();
		$blameableListener-&amp;gt;setAnnotationReader($config-&amp;gt;getMetadataDriverImpl()-&amp;gt;getReader());
		&lt;span class=&quot;code-comment&quot;&gt;//class_exists makes &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; usable with the command-line
&lt;/span&gt;		&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (class_exists(&apos;\User&apos;) &amp;amp;&amp;amp; ($u = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \User()) != &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) {
			$blameableListener-&amp;gt;setUserValue($u-&amp;gt;getUserID());
		}
		$evm-&amp;gt;addEventSubscriber($blameableListener);


		$timestampableListener = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; \Gedmo\Timestampable\TimestampableListener();
		$timestampableListener-&amp;gt;setAnnotationReader($config-&amp;gt;getMetadataDriverImpl()-&amp;gt;getReader());
		$evm-&amp;gt;addEventSubscriber($timestampableListener);

		$config-&amp;gt;addFilter(&apos;soft-deleteable&apos;, &apos;\Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter&apos;);


		&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; EntityManager::create($connectionOptions, $config, $evm);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;and the entity is (which sets up the repository) is:&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;
namespace Innertube\Models;
defined(&apos;C5_EXECUTE&apos;) or die(&apos;Access Denied.&apos;);

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @ORM\Entity(repositoryClass=&lt;span class=&quot;code-quote&quot;&gt;&quot;DeviceRepository&quot;&lt;/span&gt;) @ORM\Table(name=&lt;span class=&quot;code-quote&quot;&gt;&quot;Devices&quot;&lt;/span&gt;)
 * @Gedmo\SoftDeleteable(fieldName=&lt;span class=&quot;code-quote&quot;&gt;&quot;deletedOn&quot;&lt;/span&gt;)
 **/
class Device {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;and the repository is:&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;
namespace Innertube\Models;
defined(&apos;C5_EXECUTE&apos;) or die(&apos;Access Denied.&apos;);

use Doctrine\ORM\EntityRepository;

class DeviceRepository &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; EntityRepository {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>Mac OSX 10.6.8</environment>
            <key id="14424">DCOM-168</key>
            <summary>ignoredAnnotationNames doesn&apos;t work in Annotation loop</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="jshannon">James S</reporter>
                        <labels>
                    </labels>
                <created>Sun, 27 Jan 2013 01:31:25 +0000</created>
                <updated>Sun, 27 Jan 2013 01:35:02 +0000</updated>
                                    <version>2.3</version>
                                                <component>Annotations</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-130] Paths in Doctrine\Common\Cache\FileCache could create large directory indexes</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-130</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;The way paths are created within FileCache currently, there is a theoretical maximum of 16^12 directories in the cache directory, which is quite a large number. Usually schemes like this are used to restrict the number of files in one directory.&lt;/p&gt;

&lt;p&gt;Comparing with git, for example, the dirs are arranged&lt;/p&gt;

&lt;p&gt;00/&lt;br/&gt;
1c/&lt;br/&gt;
...&lt;br/&gt;
ff/&lt;/p&gt;

&lt;p&gt;and then the object store within those directories, which is a lot more manageable, say if you happen to type ls in the cache directory, you will get a maximum listing of 256 dirs. PhpThumb does something similar when caching images.&lt;/p&gt;

&lt;p&gt;How about something like this for getFilename():&lt;/p&gt;

&lt;p&gt;    $idHash = md5($id);&lt;br/&gt;
    $path = substr($idHash, 0, 2) . DIRECTORY_SEPARATOR . substr($idHash, 2, 2) . DIRECTORY_SEPARATOR . substr($idHash, 4);&lt;br/&gt;
    $path = $this-&amp;gt;directory . DIRECTORY_SEPARATOR . $path;&lt;/p&gt;

&lt;p&gt;    return $path . $id . $this-&amp;gt;extension;&lt;/p&gt;

&lt;p&gt;Not nearly so elegant, but I think this has better properties for the file system. Also I would be tempted to use one of the sha family hashes and not to include the $id within the filename, but perhaps this is helpful for debugging?&lt;/p&gt;</description>
                <environment>Any</environment>
            <key id="14159">DCOM-130</key>
            <summary>Paths in Doctrine\Common\Cache\FileCache could create large directory indexes</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="terrapin">R Churchill</reporter>
                        <labels>
                    </labels>
                <created>Tue, 23 Oct 2012 01:05:16 +0000</created>
                <updated>Fri, 10 May 2013 15:45:04 +0000</updated>
                                    <version>2.3</version>
                                                <component>Caching</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="20267" author="jhigman" created="Fri, 10 May 2013 15:36:36 +0000"  >&lt;p&gt;We hit this problem in a live system - with a lot of cached items, the number of subdirectories that FileCache creates can exceed the number that an ext3 filesystem allows in a single directory (about 32000). &lt;/p&gt;

&lt;p&gt;After that, an attempt to cache a new item can get an error like this:&lt;/p&gt;

&lt;p&gt;    mkdir() &lt;span class=&quot;error&quot;&gt;&amp;#91;function.mkdir&amp;#93;&lt;/span&gt;: Too many links&lt;/p&gt;


&lt;p&gt;Our solution was similar to that suggested: &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;protected&lt;/span&gt; function getFilename($id) {
        $path = implode(str_split(md5($id), 2), DIRECTORY_SEPARATOR);
        $path = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;directory . DIRECTORY_SEPARATOR . $path;
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $path . DIRECTORY_SEPARATOR . $id . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;extension;
    }

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It splits the md5 of the item id into parts of length 2, rather than the original 12. This creates a deeply nested structure, but which won&apos;t ever exceed the limit on number of subdirectories in any one directory. It&apos;s the same subdirectory pattern used by default by Apache mod_disk_cache, as well.&lt;/p&gt;
</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-129] Annotation parser matches colon after annotation</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-129</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;Code&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;
/**
* Removes given $node from the tree and reparents its descendants
*
* @todo may be improved, to issue single query on reparenting
* @param object $node
* @&lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; RuntimeException - &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; something fails in transaction
* @&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; void
*/
&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; function removeFromTree($node)
{
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;fails with `&lt;span class=&quot;error&quot;&gt;&amp;#91;Semantical Error&amp;#93;&lt;/span&gt; The annotation &quot;@todo:&quot; in method Gedmo\Tree\Entity\Repository\ClosureTreeRepository::removeFromTree() was never imported. Did you maybe forget to add a &quot;use&quot; statement for this annotation?`.&lt;/p&gt;

&lt;p&gt;As you see it tryes find annotation with name &quot;@todo:&quot;. Don&apos;t know, maybe rtrim($name, &apos;:&apos;) would enough.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14154">DCOM-129</key>
            <summary>Annotation parser matches colon after annotation</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="koc">Konstantin</reporter>
                        <labels>
                    </labels>
                <created>Sun, 21 Oct 2012 15:18:35 +0000</created>
                <updated>Sun, 21 Oct 2012 15:18:35 +0000</updated>
                                    <version>2.3</version>
                                                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-128] RedisCache uses IGBINARY which is not always available</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-128</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;The RedisCache uses Redis::SERIALIZER_IGBINARY. See &lt;a href=&quot;https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Cache/RedisCache.php&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Cache/RedisCache.php&lt;/a&gt; line 47.&lt;/p&gt;

&lt;p&gt;The problem is that the php Redis extension can be compiled without IGBINARY support. In that case, this code causes a fatal error because the constant does not exist.&lt;/p&gt;

&lt;p&gt;The DotDeb package of php5-redis (often used on Debian systems) for example comes compiled without IGBINARY support.&lt;/p&gt;

&lt;p&gt;The code should probably check if the constant exists. If not, the default to Redis::SERIALIZER_PHP&lt;/p&gt;</description>
                <environment></environment>
            <key id="14151">DCOM-128</key>
            <summary>RedisCache uses IGBINARY which is not always available</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="sandermarechal">Sander Marechal</reporter>
                        <labels>
                    </labels>
                <created>Sat, 20 Oct 2012 17:04:02 +0000</created>
                <updated>Sat, 20 Oct 2012 17:04:02 +0000</updated>
                                    <version>2.3</version>
                                                <component>Caching</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-75] remove leading backslash from class name before comparing to namespace in annotation autoloading</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-75</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;I am figuring a problem with Symfony Validator constraints (I use annotations to define the constraint rules).&lt;/p&gt;

&lt;p&gt;As I don&apos;t use Symfony&apos;s framework, I create the validator service by myself.&lt;br/&gt;
Somewhere in its factory, I put the following code:&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;         
AnnotationRegistry::registerAutoloadNamespaces(array(
    &apos;\Symfony\Component\Validator\Constraints&apos; =&amp;gt; APPLICATION_ROOT . &apos;/library&apos;
));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then, in my entities, I have annotations such as:&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;use Symfony\Component\Validator\Constraints as Assert;

class Author {
    /**
     * @Assert\NotBlank()
     */
    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; $name;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;In this configuration, I get the following error:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Semantical Error&amp;#93;&lt;/span&gt; The annotation &quot;@Symfony\Component\Validator\Constraints\NotBlank&quot;&lt;br/&gt;
in property Domain\Entity\Author::$name does not exist, or could not be auto-loaded.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I was able to trace it down to the Doctrine\Common\Annotations\AnnotationRegistry#loadAnnotationClass($class) where we can find the following test:&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;if&lt;/span&gt; (strpos($class, $namespace) === 0) {
        require ...;
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;which means &quot;if the namespace can be found at the beginning of the FQCN, require it&quot;.&lt;br/&gt;
But those namespaces come from &quot;use&quot; statements where there is no leading backslash.&lt;br/&gt;
That&apos;s why the test fails.&lt;/p&gt;

&lt;p&gt;Christophe Coevoet answered:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;you should remove the leading backslash. Fully qualified class names used as string don&apos;t include it in PHP. &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Benjamin Eberlei suggested to remove the leading backslash before comparing the class to the namespace.&lt;br/&gt;
I would follow Benjamin suggestion and would like to add a comment about leading backslashes:&lt;/p&gt;

&lt;p&gt;When I add a &lt;tt&gt;use&lt;/tt&gt; statement to my code for a class, I can then use its alias to get an instance of that class.&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;use Doctrine\ORM\Mapping\ClassMetadata;
...
$metadata = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ClassMetadata();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 
&lt;p&gt;The same is true with:&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;use Doctrine\ORM\Mapping as Foo;
...
$metadata = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Foo\ClassMetadata();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;This is not a fully qualified class name&lt;/b&gt;.&lt;br/&gt;
In that sense, I do understand such an annotation: &lt;tt&gt;@ORM\Entity&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;But I find the syntax of a fully-qualified annotation (&lt;tt&gt;@My\Annotation\Whatever&lt;/tt&gt;) erroneous (or at least counter-intuitive) as it doesn&apos;t start with a backslash.&lt;/p&gt;</description>
                <environment>not relevant</environment>
            <key id="13146">DCOM-75</key>
            <summary>remove leading backslash from class name before comparing to namespace in annotation autoloading</summary>
                <type id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/improvement.png">Improvement</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="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="goriol">Guillaume ORIOL</reporter>
                        <labels>
                    </labels>
                <created>Thu, 3 Nov 2011 15:54:22 +0000</created>
                <updated>Thu, 3 Nov 2011 15:54:22 +0000</updated>
                                    <version>2.1.2</version>
                                                <component>Annotations</component>
                        <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>