Skip to content

Commit 1b2d8ab

Browse files
committed
Update TableReversor.php
1 parent 37f1d72 commit 1b2d8ab

File tree

1 file changed

+66
-56
lines changed

1 file changed

+66
-56
lines changed

src/Ubiquity/orm/reverse/TableReversor.php

Lines changed: 66 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?php
2-
32
namespace Ubiquity\orm\reverse;
43

54
use Ubiquity\orm\OrmUtils;
@@ -8,109 +7,120 @@
87
/**
98
* Ubiquity\orm\reverse$TableReversor
109
* This class is part of Ubiquity
10+
*
1111
* @author jcheron <[email protected]>
1212
* @version 1.0.0
1313
* @package ubiquity.dev
1414
*
1515
*/
1616
class TableReversor {
17+
1718
private $model;
18-
private $fkFieldsToAdd=[];
19-
private $fkFieldTypesToAdd=[];
19+
20+
private $fkFieldsToAdd = [];
21+
22+
private $fkFieldTypesToAdd = [];
23+
2024
private $metas;
2125

22-
public function __construct($model=null){
23-
$this->model=$model;
26+
public function __construct($model = null) {
27+
$this->model = $model;
2428
}
2529

26-
public function initFromClass(){
27-
if(isset($this->model))
28-
$this->metas=OrmUtils::getModelMetadata($this->model);
30+
public function initFromClass() {
31+
if (isset($this->model))
32+
$this->metas = OrmUtils::getModelMetadata($this->model);
2933
}
3034

31-
public function init($metas){
32-
$this->metas=$metas;
35+
public function init($metas) {
36+
$this->metas = $metas;
3337
}
3438

35-
public function generateSQL(DbGenerator $generator){
36-
$table=$this->metas["#tableName"];
37-
$primaryKeys=$this->metas["#primaryKeys"];
38-
$serializables=$this->getSerializableFields();
39-
$nullables=$this->metas["#nullable"];
40-
$fieldTypes=$this->metas["#fieldTypes"];
41-
$manyToOnes=$this->metas["#manyToOne"];
42-
$manyToManys=[];
43-
if(isset($this->metas["#manyToMany"]))
44-
$manyToManys=$this->metas["#manyToMany"];
39+
public function generateSQL(DbGenerator $generator) {
40+
$table = $this->metas["#tableName"];
41+
$primaryKeys = $this->metas["#primaryKeys"];
42+
$serializables = $this->getSerializableFields();
43+
$nullables = $this->metas["#nullable"];
44+
$fieldTypes = $this->metas["#fieldTypes"];
45+
$manyToOnes = $this->metas["#manyToOne"];
46+
$manyToManys = [];
47+
if (isset($this->metas["#manyToMany"]))
48+
$manyToManys = $this->metas["#manyToMany"];
4549
$this->scanManyToManys($generator, $manyToManys);
46-
$this->generatePks($generator, $primaryKeys, $table, $fieldTypes,$nullables);
50+
$this->generatePks($generator, $primaryKeys, $table, $fieldTypes, $nullables);
4751
$this->generateForeignKeys($generator, $manyToOnes, $table);
48-
$serializables=\array_unique(\array_merge($serializables,$this->fkFieldsToAdd));
49-
$fieldTypes=\array_merge($fieldTypes,$this->fkFieldTypesToAdd);
50-
$fieldsAttributes=$this->generateFieldsAttributes($serializables, $fieldTypes, $nullables);
52+
$serializables = \array_unique(\array_merge($serializables, $this->fkFieldsToAdd));
53+
$fieldTypes = \array_merge($fieldTypes, $this->fkFieldTypesToAdd);
54+
$fieldsAttributes = $this->generateFieldsAttributes($serializables, $fieldTypes, $nullables);
5155
$generator->createTable($table, $fieldsAttributes);
52-
foreach ($this->fkFieldsToAdd as $fkField){
53-
$generator->addKey($table, [$fkField],"");
56+
foreach ($this->fkFieldsToAdd as $fkField) {
57+
$generator->addKey($table, [
58+
$fkField
59+
], "");
5460
}
5561
}
5662

5763
protected function getSerializableFields() {
58-
$notSerializable=$this->metas["#notSerializable"];
59-
$fieldNames=$this->metas["#fieldNames"];
64+
$notSerializable = $this->metas["#notSerializable"];
65+
$fieldNames = $this->metas["#fieldNames"];
6066
return \array_diff($fieldNames, $notSerializable);
6167
}
6268

63-
protected function scanManyToManys(DbGenerator $generator,$manyToManys){
64-
foreach ($manyToManys as $member=>$manyToMany){
65-
if(isset($this->metas["#joinTable"][$member])){
66-
$annotJoinTable=$this->metas["#joinTable"][$member];
69+
protected function scanManyToManys(DbGenerator $generator, $manyToManys) {
70+
foreach ($manyToManys as $member => $manyToMany) {
71+
if (isset($this->metas["#joinTable"][$member])) {
72+
$annotJoinTable = $this->metas["#joinTable"][$member];
6773
$generator->addManyToMany($annotJoinTable["name"], $manyToMany["targetEntity"]);
6874
}
6975
}
7076
}
7177

72-
protected function generatePks(DbGenerator $generator,$primaryKeys,$table,$fieldTypes,$nullables){
78+
protected function generatePks(DbGenerator $generator, $primaryKeys, $table, $fieldTypes, $nullables) {
7379
$generator->addKey($table, $primaryKeys);
74-
if(\sizeof($primaryKeys)===1 && $generator->isInt($fieldTypes[$primaryKeys[0]])){
75-
$generator->addAutoInc($table, $this->getFieldAttributes($generator, $primaryKeys[0], $nullables, $fieldTypes));
80+
if (\sizeof($primaryKeys) === 1 && $generator->isInt($fieldTypes[\current($primaryKeys)])) {
81+
$generator->addAutoInc($table, $this->getFieldAttributes($generator, \current($primaryKeys), $nullables, $fieldTypes));
7682
}
7783
}
7884

79-
protected function generateFieldsAttributes($serializables,$fieldTypes,$nullables){
80-
$fieldsAttributes=[];
81-
foreach ($serializables as $field){
82-
$fieldsAttributes[]=$this->_generateFieldAttributes($field, $nullables, $fieldTypes);
85+
protected function generateFieldsAttributes($serializables, $fieldTypes, $nullables) {
86+
$fieldsAttributes = [];
87+
foreach ($serializables as $field) {
88+
$fieldsAttributes[] = $this->_generateFieldAttributes($field, $nullables, $fieldTypes);
8389
}
8490
return $fieldsAttributes;
8591
}
8692

87-
public function getFieldAttributes(DbGenerator $generator,$field,$nullables,$fieldTypes){
93+
public function getFieldAttributes(DbGenerator $generator, $field, $nullables, $fieldTypes) {
8894
return $generator->generateField($this->_generateFieldAttributes($field, $nullables, $fieldTypes));
8995
}
9096

91-
protected function _generateFieldAttributes($field,$nullables,$fieldTypes){
92-
$nullable="NOT NULL";
93-
if(\array_search($field, $nullables)!==false){
94-
$nullable="";
97+
protected function _generateFieldAttributes($field, $nullables, $fieldTypes) {
98+
$nullable = "NOT NULL";
99+
if (\array_search($field, $nullables) !== false) {
100+
$nullable = "";
95101
}
96-
return ["name"=>$field,"type"=>$fieldTypes[$field],"extra"=>$nullable];
102+
return [
103+
"name" => $field,
104+
"type" => $fieldTypes[$field],
105+
"extra" => $nullable
106+
];
97107
}
98108

99-
protected function generateForeignKey(DbGenerator $generator,$tableName,$member){
100-
$fieldAnnot=OrmUtils::getMemberJoinColumns("", $member,$this->metas);
101-
if($fieldAnnot!==null){
102-
$annotationArray=$fieldAnnot[1];
103-
$referencesTableName=OrmUtils::getTableName($annotationArray["className"]);
104-
$referencesFieldName=OrmUtils::getFirstKey($annotationArray["className"]);
105-
$fkFieldName=$fieldAnnot[0];
106-
$this->fkFieldsToAdd[]=$fkFieldName;
107-
$this->fkFieldTypesToAdd[$fkFieldName]=OrmUtils::getFieldType($annotationArray["className"], $referencesFieldName);
109+
protected function generateForeignKey(DbGenerator $generator, $tableName, $member) {
110+
$fieldAnnot = OrmUtils::getMemberJoinColumns("", $member, $this->metas);
111+
if ($fieldAnnot !== null) {
112+
$annotationArray = $fieldAnnot[1];
113+
$referencesTableName = OrmUtils::getTableName($annotationArray["className"]);
114+
$referencesFieldName = OrmUtils::getFirstKey($annotationArray["className"]);
115+
$fkFieldName = $fieldAnnot[0];
116+
$this->fkFieldsToAdd[] = $fkFieldName;
117+
$this->fkFieldTypesToAdd[$fkFieldName] = OrmUtils::getFieldType($annotationArray["className"], $referencesFieldName);
108118
$generator->addForeignKey($tableName, $fkFieldName, $referencesTableName, $referencesFieldName);
109119
}
110120
}
111121

112-
protected function generateForeignKeys(DbGenerator $generator,$manyToOnes,$tableName){
113-
foreach ($manyToOnes as $member){
122+
protected function generateForeignKeys(DbGenerator $generator, $manyToOnes, $tableName) {
123+
foreach ($manyToOnes as $member) {
114124
$this->generateForeignKey($generator, $tableName, $member);
115125
}
116126
}

0 commit comments

Comments
 (0)