Ubiquity  2.0.2
php rapid development framework
ManyToManyParser.php
Go to the documentation of this file.
1 <?php
2 
4 
6 
13  private $member;
14  private $joinTable;
15  private $myFkField;
16  private $fkField;
17  private $targetEntity;
20  private $myPk;
21  private $inversedBy;
22  private $pk;
23  private $instance;
24 
25  public function __construct($instance, $member) {
26  $this->instance=$instance;
27  $this->member=$member;
28  }
29 
30  public function init() {
32  $class=$this->instance;
33  if(\is_string($class)===false)
34  $class=get_class($class);
35  $annot=OrmUtils::getAnnotationInfoMember($class, "#manyToMany", $member);
36  if ($annot !== false) {
37  $this->targetEntity=$annot["targetEntity"];
38  $this->inversedBy=strtolower($this->targetEntity) . "s";
39  if (!is_null($annot["inversedBy"]))
40  $this->inversedBy=$annot["inversedBy"];
41  $this->targetEntityClass=get_class(new $this->targetEntity());
42 
43  $annotJoinTable=OrmUtils::getAnnotationInfoMember($class, "#joinTable", $member);
44  $this->joinTable=$annotJoinTable["name"];
45  $joinColumnsAnnot=@$annotJoinTable["joinColumns"];
46  $this->myFkField=OrmUtils::getDefaultFk($class);
47  $this->myPk=OrmUtils::getFirstKey($class);
48  if (!is_null($joinColumnsAnnot)) {
49  $this->myFkField=$joinColumnsAnnot["name"];
50  $this->myPk=$joinColumnsAnnot["referencedColumnName"];
51  }
52  $this->targetEntityTable=OrmUtils::getTableName($this->targetEntity);
53  $this->fkField=OrmUtils::getDefaultFk($this->targetEntityClass);
54  $this->pk=OrmUtils::getFirstKey($this->targetEntityClass);
55  $inverseJoinColumnsAnnot=@$annotJoinTable["inverseJoinColumns"];
56  if (!is_null($inverseJoinColumnsAnnot)) {
57  $this->fkField=$inverseJoinColumnsAnnot["name"];
58  $this->pk=$inverseJoinColumnsAnnot["referencedColumnName"];
59  }
60  return true;
61  }
62  return false;
63  }
64 
65  public function getMember() {
66  return $this->member;
67  }
68 
69  public function setMember($member) {
70  $this->member=$member;
71  return $this;
72  }
73 
74  public function getJoinTable() {
75  return $this->joinTable;
76  }
77 
78  public function setJoinTable($joinTable) {
79  $this->joinTable=$joinTable;
80  return $this;
81  }
82 
83  public function getMyFkField() {
84  return $this->myFkField;
85  }
86 
87  public function setMyFkField($myFkField) {
88  $this->myFkField=$myFkField;
89  return $this;
90  }
91 
92  public function getFkField() {
93  return $this->fkField;
94  }
95 
96  public function setFkField($fkField) {
97  $this->fkField=$fkField;
98  return $this;
99  }
100 
101  public function getTargetEntity() {
102  return $this->targetEntity;
103  }
104 
105  public function setTargetEntity($targetEntity) {
106  $this->targetEntity=$targetEntity;
107  return $this;
108  }
109 
110  public function getTargetEntityClass() {
112  }
113 
115  $this->targetEntityClass=$targetEntityClass;
116  return $this;
117  }
118 
119  public function getTargetEntityTable() {
121  }
122 
124  $this->targetEntityTable=$targetEntityTable;
125  return $this;
126  }
127 
128  public function getMyPk() {
129  return $this->myPk;
130  }
131 
132  public function setMyPk($myPk) {
133  $this->myPk=$myPk;
134  return $this;
135  }
136 
137  public function getPk() {
138  return $this->pk;
139  }
140 
141  public function setPk($pk) {
142  $this->pk=$pk;
143  return $this;
144  }
145 
146  public function getInversedBy() {
147  return $this->inversedBy;
148  }
149 
150  public function setInversedBy($inversedBy) {
151  $this->inversedBy=$inversedBy;
152  return $this;
153  }
154 
155  public function getInstance() {
156  return $this->instance;
157  }
158 
159  public function setInstance($instance) {
160  $this->instance=$instance;
161  return $this;
162  }
163 }
static getDefaultFk($classname)
Definition: OrmUtils.php:247
static getAnnotationInfoMember($class, $keyAnnotation, $member)
Definition: OrmUtils.php:200
static getFirstKey($class)
Definition: OrmUtils.php:121
static getTableName($class)
Definition: OrmUtils.php:61