<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2014-05-31 1:05 GMT+02:00 Daniel Moritz <span dir="ltr">&lt;<a href="mailto:d.moritz@gmx.org" target="_blank">d.moritz@gmx.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
In my opinion, Doctrine 2 DBAL on its own cannot increase the speed, because the queries to the database will be the same as before. The key benefit by using DBAL is the data abstraction, that means other database types than mysql can be used without the need to rewrite the existing code - not much more. But it cannot be used to optimize the speed, because there is no datamanager for already fetched data. This advantage takes place in the ORM - there is an entitymanager, which avoid new queries to the database, if the requested data was fetched already, can be identified by its primary key and therefore delivered directly from memory. Not only in this point we should differ between DBAL and ORM ...</blockquote>
Well, it is obvious for me that it will have a small effect on speed, but a huge effect on memory usage.<div><br></div><div>* Doctrine will hang somewhere in memory Class metadata, which duplicates TCA informations</div><div>
* When you manipulates entities (in the core or in plugins), the EntityManager keeps them &quot;managed&quot; until you &quot;detach&quot; them. It&#39;s a kind of cache, but will also consume memory. It&#39;s a bit tricky to know if something should be kept managed or not, and Entity associations only make things worse.</div>
<div><br></div><div>Doctrine is a wonderful tool, but it is not very wise to add it on top of Typo3 as an optional tool. At the end it&#39;s only a shitload of code, classes, and metadata thrown onto the already huge Typo3 codebase. It won&#39;t be efficient unless the whole core relies on it and get rid of every legacy who could be replaced by it. Mocking TCA as metadata only duplicates it, the right way to do it would be to remove the TCA, and replace it by Annotations in Entity classes</div>
<div class="gmail_extra"><br clear="all">Regards,</div><div>Popy </div></div></div></div>