[TYPO3-mvc] Annotaion based relation-type-detection

Felix Oertel mehl at foertel.com
Fri Apr 16 01:23:34 CEST 2010


Hey ho,

we all know, we had ... erm, let's say: "issues" with IRRE. ;-) The hole 
system is not meant to be a good way to detect a databse-relation-type.

As we use annotations anyway, we should act consistently and detect the 
database's relation-type by using an annotation.

This patch will introduce three new annotations:
@OneToOne
@OneToMany and
@ManyToMany

Just add them to your model's property like:

/**
  * @var Tx_YourExt_Domain_Model_Foo $foo
  * @oneToOne
  */
protected $foo;

and extbase will do the rest. Don't care for foreign_field, MM, 
foreign_selector or some other magic field in TCA anymore.

I fear this patch is not yet complete and needs further testing. When I 
tried the blog_example I expirienced a problem with the 
Tx_BlogExample_Domain_Model_Person. It extends 
Tx_Extbase_Domain_Model_FrontendUser which is mapped to fe_users by 
ext_typoscript_setup.txt.

If I add @manyToMany to Tx_Extbase_Domain_Model_FrontendUser->usergroup, 
extbase throws an exception because it is not able to find the 
neccassary fields in TCA. Propably this is a common problem with mapped 
models ...

regards, foertel

PS: As discussed with Jochen we want to replace (!) TCA detection with 
annotation based detection, so TCA-config is not used at all and you 
HAVE TO use the annotations.


More information about the TYPO3-project-typo3v4mvc mailing list