@@ -86,7 +86,7 @@ |
||
86 | 86 | * @param string $columnName |
87 | 87 | * @param string $order |
88 | 88 | */ |
89 | - public function __construct($tableName=null, $columnName=null, $order=null) { |
|
89 | + public function __construct($tableName = null, $columnName = null, $order = null) { |
|
90 | 90 | $this->tableName = $tableName; |
91 | 91 | $this->columnName = $columnName; |
92 | 92 | $this->order = $order; |
@@ -59,7 +59,7 @@ |
||
59 | 59 | * |
60 | 60 | * @param FilterInterface $filter |
61 | 61 | */ |
62 | - public function __construct($filter=null) { |
|
62 | + public function __construct($filter = null) { |
|
63 | 63 | $this->filter = $filter; |
64 | 64 | } |
65 | 65 |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | * |
63 | 63 | * @param string $sqlString |
64 | 64 | */ |
65 | - public function __construct($sqlString=null) { |
|
65 | + public function __construct($sqlString = null) { |
|
66 | 66 | $this->sqlString = $sqlString; |
67 | 67 | } |
68 | 68 | |
@@ -95,32 +95,32 @@ discard block |
||
95 | 95 | // First, let's remove all the stuff in quotes: |
96 | 96 | |
97 | 97 | // Let's remove all the \' found |
98 | - $work_str = str_replace("\\'",'',$this->sqlString); |
|
98 | + $work_str = str_replace("\\'", '', $this->sqlString); |
|
99 | 99 | // Now, let's split the string using ' |
100 | 100 | $work_table = explode("'", $work_str); |
101 | 101 | |
102 | - if (count($work_table)==0) |
|
102 | + if (count($work_table) == 0) |
|
103 | 103 | return ''; |
104 | 104 | |
105 | 105 | // if we start with a ', let's remove the first text |
106 | - if (strstr($work_str,"'")===0) |
|
106 | + if (strstr($work_str, "'") === 0) |
|
107 | 107 | array_shift($work_table); |
108 | 108 | |
109 | - if (count($work_table)==0) |
|
109 | + if (count($work_table) == 0) |
|
110 | 110 | return ''; |
111 | 111 | |
112 | 112 | // Now, let's take only the stuff outside the quotes. |
113 | 113 | $work_str2 = ''; |
114 | 114 | |
115 | - $i=0; |
|
115 | + $i = 0; |
|
116 | 116 | foreach ($work_table as $str_fragment) { |
117 | - if (($i % 2) == 0) |
|
117 | + if (($i%2) == 0) |
|
118 | 118 | $work_str2 .= $str_fragment.' '; |
119 | 119 | $i++; |
120 | 120 | } |
121 | 121 | |
122 | 122 | // Now, let's run a regexp to find all the strings matching the pattern xxx.yyy |
123 | - preg_match_all('/([a-zA-Z_](?:[a-zA-Z0-9_]*))\.(?:[a-zA-Z_](?:[a-zA-Z0-9_]*))/', $work_str2,$capture_result); |
|
123 | + preg_match_all('/([a-zA-Z_](?:[a-zA-Z0-9_]*))\.(?:[a-zA-Z_](?:[a-zA-Z0-9_]*))/', $work_str2, $capture_result); |
|
124 | 124 | |
125 | 125 | $tables_used = $capture_result[1]; |
126 | 126 | // remove doubles: |
@@ -99,23 +99,27 @@ |
||
99 | 99 | // Now, let's split the string using ' |
100 | 100 | $work_table = explode("'", $work_str); |
101 | 101 | |
102 | - if (count($work_table)==0) |
|
103 | - return ''; |
|
102 | + if (count($work_table)==0) { |
|
103 | + return ''; |
|
104 | + } |
|
104 | 105 | |
105 | 106 | // if we start with a ', let's remove the first text |
106 | - if (strstr($work_str,"'")===0) |
|
107 | - array_shift($work_table); |
|
107 | + if (strstr($work_str,"'")===0) { |
|
108 | + array_shift($work_table); |
|
109 | + } |
|
108 | 110 | |
109 | - if (count($work_table)==0) |
|
110 | - return ''; |
|
111 | + if (count($work_table)==0) { |
|
112 | + return ''; |
|
113 | + } |
|
111 | 114 | |
112 | 115 | // Now, let's take only the stuff outside the quotes. |
113 | 116 | $work_str2 = ''; |
114 | 117 | |
115 | 118 | $i=0; |
116 | 119 | foreach ($work_table as $str_fragment) { |
117 | - if (($i % 2) == 0) |
|
118 | - $work_str2 .= $str_fragment.' '; |
|
120 | + if (($i % 2) == 0) { |
|
121 | + $work_str2 .= $str_fragment.' '; |
|
122 | + } |
|
119 | 123 | $i++; |
120 | 124 | } |
121 | 125 |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | * |
50 | 50 | * @param array<FilterInterface> $filters |
51 | 51 | */ |
52 | - public function __construct(array $filters=array()) { |
|
52 | + public function __construct(array $filters = array()) { |
|
53 | 53 | $this->filters = $filters; |
54 | 54 | } |
55 | 55 | |
@@ -91,7 +91,7 @@ discard block |
||
91 | 91 | } |
92 | 92 | |
93 | 93 | if (count($filters_sql)>0) { |
94 | - return '('.implode(' AND ',$filters_sql).')'; |
|
94 | + return '('.implode(' AND ', $filters_sql).')'; |
|
95 | 95 | } else { |
96 | 96 | return ''; |
97 | 97 | } |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | throw new TDBMException("Error in AndFilter: One of the parameters is not a filter."); |
115 | 115 | } |
116 | 116 | |
117 | - $tables = array_merge($tables,$filter->getUsedTables()); |
|
117 | + $tables = array_merge($tables, $filter->getUsedTables()); |
|
118 | 118 | } |
119 | 119 | // Remove tables in double. |
120 | 120 | $tables = array_flip(array_flip($tables)); |
@@ -9,14 +9,14 @@ |
||
9 | 9 | */ |
10 | 10 | class FilterUtils |
11 | 11 | { |
12 | - /** |
|
13 | - * @param string|null|DateTimeInterface $value |
|
14 | - */ |
|
15 | - public static function valueToSql($value, Connection $dbConnection) { |
|
16 | - if ($value instanceof DateTimeInterface) { |
|
17 | - return "'".$value->format('Y-m-d H:i:s')."'"; |
|
18 | - } else { |
|
19 | - return $dbConnection->quote($value); |
|
20 | - } |
|
21 | - } |
|
12 | + /** |
|
13 | + * @param string|null|DateTimeInterface $value |
|
14 | + */ |
|
15 | + public static function valueToSql($value, Connection $dbConnection) { |
|
16 | + if ($value instanceof DateTimeInterface) { |
|
17 | + return "'".$value->format('Y-m-d H:i:s')."'"; |
|
18 | + } else { |
|
19 | + return $dbConnection->quote($value); |
|
20 | + } |
|
21 | + } |
|
22 | 22 | } |
@@ -98,8 +98,8 @@ discard block |
||
98 | 98 | * |
99 | 99 | * @param string $tableName |
100 | 100 | * @param string $columnName |
101 | - * @param string $value1 |
|
102 | - * @param string $value2 |
|
101 | + * @param string $value1 |
|
102 | + * @param string $value2 |
|
103 | 103 | */ |
104 | 104 | public function __construct($tableName=null, $columnName=null, $value1=null, $value2=null) { |
105 | 105 | $this->tableName = $tableName; |
@@ -113,9 +113,9 @@ discard block |
||
113 | 113 | * |
114 | 114 | * @param Connection $dbConnection |
115 | 115 | * @return string |
116 | - * @throws \Mouf\Database\TDBM\TDBMException |
|
116 | + * @throws \Mouf\Database\TDBM\TDBMException |
|
117 | 117 | */ |
118 | - public function toSql(Connection $dbConnection) { |
|
118 | + public function toSql(Connection $dbConnection) { |
|
119 | 119 | if ($this->enableCondition != null && !$this->enableCondition->isOk()) { |
120 | 120 | return ""; |
121 | 121 | } |
@@ -101,7 +101,7 @@ |
||
101 | 101 | * @param string $value1 |
102 | 102 | * @param string $value2 |
103 | 103 | */ |
104 | - public function __construct($tableName=null, $columnName=null, $value1=null, $value2=null) { |
|
104 | + public function __construct($tableName = null, $columnName = null, $value1 = null, $value2 = null) { |
|
105 | 105 | $this->tableName = $tableName; |
106 | 106 | $this->columnName = $columnName; |
107 | 107 | $this->value1 = $value1; |
@@ -68,9 +68,9 @@ discard block |
||
68 | 68 | * |
69 | 69 | * @param Connection $dbConnection |
70 | 70 | * @return string |
71 | - * @throws TDBMException |
|
71 | + * @throws TDBMException |
|
72 | 72 | */ |
73 | - public function toSql(Connection $dbConnection) { |
|
73 | + public function toSql(Connection $dbConnection) { |
|
74 | 74 | if ($this->enableCondition != null && !$this->enableCondition->isOk()) { |
75 | 75 | return ""; |
76 | 76 | } |
@@ -102,22 +102,22 @@ discard block |
||
102 | 102 | * |
103 | 103 | * @return array<string> |
104 | 104 | */ |
105 | - public function getUsedTables() { |
|
106 | - if ($this->enableCondition != null && !$this->enableCondition->isOk()) { |
|
107 | - return array(); |
|
108 | - } |
|
109 | - |
|
110 | - $tables = array(); |
|
111 | - foreach ($this->filters as $filter) { |
|
112 | - |
|
113 | - if (!$filter instanceof FilterInterface) { |
|
114 | - throw new TDBMException("Error in OrFilter: One of the parameters is not a filter."); |
|
115 | - } |
|
116 | - |
|
117 | - $tables = array_merge($tables,$filter->getUsedTables()); |
|
118 | - } |
|
119 | - // Remove tables in double. |
|
120 | - $tables = array_flip(array_flip($tables)); |
|
121 | - return $tables; |
|
122 | - } |
|
105 | + public function getUsedTables() { |
|
106 | + if ($this->enableCondition != null && !$this->enableCondition->isOk()) { |
|
107 | + return array(); |
|
108 | + } |
|
109 | + |
|
110 | + $tables = array(); |
|
111 | + foreach ($this->filters as $filter) { |
|
112 | + |
|
113 | + if (!$filter instanceof FilterInterface) { |
|
114 | + throw new TDBMException("Error in OrFilter: One of the parameters is not a filter."); |
|
115 | + } |
|
116 | + |
|
117 | + $tables = array_merge($tables,$filter->getUsedTables()); |
|
118 | + } |
|
119 | + // Remove tables in double. |
|
120 | + $tables = array_flip(array_flip($tables)); |
|
121 | + return $tables; |
|
122 | + } |
|
123 | 123 | } |
@@ -59,7 +59,7 @@ discard block |
||
59 | 59 | * |
60 | 60 | * @param array<FilterInterface> $filters |
61 | 61 | */ |
62 | - public function __construct(array $filters=array()) { |
|
62 | + public function __construct(array $filters = array()) { |
|
63 | 63 | $this->filters = $filters; |
64 | 64 | } |
65 | 65 | |
@@ -91,7 +91,7 @@ discard block |
||
91 | 91 | } |
92 | 92 | |
93 | 93 | if (count($filters_sql)>0) { |
94 | - return '('.implode(' OR ',$filters_sql).')'; |
|
94 | + return '('.implode(' OR ', $filters_sql).')'; |
|
95 | 95 | } else { |
96 | 96 | return ''; |
97 | 97 | } |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | throw new TDBMException("Error in OrFilter: One of the parameters is not a filter."); |
115 | 115 | } |
116 | 116 | |
117 | - $tables = array_merge($tables,$filter->getUsedTables()); |
|
117 | + $tables = array_merge($tables, $filter->getUsedTables()); |
|
118 | 118 | } |
119 | 119 | // Remove tables in double. |
120 | 120 | $tables = array_flip(array_flip($tables)); |
@@ -85,7 +85,7 @@ |
||
85 | 85 | * @param string $columnName |
86 | 86 | * @param string $value |
87 | 87 | */ |
88 | - public function __construct($tableName=null, $columnName=null, $value=null) { |
|
88 | + public function __construct($tableName = null, $columnName = null, $value = null) { |
|
89 | 89 | $this->tableName = $tableName; |
90 | 90 | $this->columnName = $columnName; |
91 | 91 | $this->value = $value; |
@@ -15,96 +15,96 @@ |
||
15 | 15 | class TDBMSchemaAnalyzer |
16 | 16 | { |
17 | 17 | |
18 | - private $connection; |
|
18 | + private $connection; |
|
19 | 19 | |
20 | - /** |
|
21 | - * @var Schema |
|
22 | - */ |
|
23 | - private $schema; |
|
20 | + /** |
|
21 | + * @var Schema |
|
22 | + */ |
|
23 | + private $schema; |
|
24 | 24 | |
25 | - /** |
|
26 | - * @var string |
|
27 | - */ |
|
28 | - private $cachePrefix; |
|
25 | + /** |
|
26 | + * @var string |
|
27 | + */ |
|
28 | + private $cachePrefix; |
|
29 | 29 | |
30 | - /** |
|
31 | - * @var Cache |
|
32 | - */ |
|
33 | - private $cache; |
|
30 | + /** |
|
31 | + * @var Cache |
|
32 | + */ |
|
33 | + private $cache; |
|
34 | 34 | |
35 | - /** |
|
36 | - * @var SchemaAnalyzer |
|
37 | - */ |
|
38 | - private $schemaAnalyzer; |
|
35 | + /** |
|
36 | + * @var SchemaAnalyzer |
|
37 | + */ |
|
38 | + private $schemaAnalyzer; |
|
39 | 39 | |
40 | - /** |
|
41 | - * @param Connection $connection The DBAL DB connection to use |
|
42 | - * @param Cache $cache A cache service to be used |
|
43 | - * @param SchemaAnalyzer $schemaAnalyzer The schema analyzer that will be used to find shortest paths... |
|
44 | - * Will be automatically created if not passed. |
|
45 | - */ |
|
46 | - public function __construct(Connection $connection, Cache $cache, SchemaAnalyzer $schemaAnalyzer) { |
|
47 | - $this->connection = $connection; |
|
48 | - $this->cache = $cache; |
|
49 | - $this->schemaAnalyzer = $schemaAnalyzer; |
|
50 | - } |
|
40 | + /** |
|
41 | + * @param Connection $connection The DBAL DB connection to use |
|
42 | + * @param Cache $cache A cache service to be used |
|
43 | + * @param SchemaAnalyzer $schemaAnalyzer The schema analyzer that will be used to find shortest paths... |
|
44 | + * Will be automatically created if not passed. |
|
45 | + */ |
|
46 | + public function __construct(Connection $connection, Cache $cache, SchemaAnalyzer $schemaAnalyzer) { |
|
47 | + $this->connection = $connection; |
|
48 | + $this->cache = $cache; |
|
49 | + $this->schemaAnalyzer = $schemaAnalyzer; |
|
50 | + } |
|
51 | 51 | |
52 | - /** |
|
53 | - * Returns a unique ID for the current connection. Useful for namespacing cache entries in the current connection. |
|
54 | - * @return string |
|
55 | - */ |
|
56 | - public function getCachePrefix() { |
|
57 | - if ($this->cachePrefix === null) { |
|
58 | - $this->cachePrefix = hash('md4', $this->connection->getHost()."-".$this->connection->getPort()."-".$this->connection->getDatabase()."-".$this->connection->getDriver()->getName()); |
|
59 | - } |
|
60 | - return $this->cachePrefix; |
|
61 | - } |
|
52 | + /** |
|
53 | + * Returns a unique ID for the current connection. Useful for namespacing cache entries in the current connection. |
|
54 | + * @return string |
|
55 | + */ |
|
56 | + public function getCachePrefix() { |
|
57 | + if ($this->cachePrefix === null) { |
|
58 | + $this->cachePrefix = hash('md4', $this->connection->getHost()."-".$this->connection->getPort()."-".$this->connection->getDatabase()."-".$this->connection->getDriver()->getName()); |
|
59 | + } |
|
60 | + return $this->cachePrefix; |
|
61 | + } |
|
62 | 62 | |
63 | - /** |
|
64 | - * Returns the (cached) schema. |
|
65 | - * |
|
66 | - * @return Schema |
|
67 | - */ |
|
68 | - public function getSchema() { |
|
69 | - if ($this->schema === null) { |
|
70 | - $cacheKey = $this->getCachePrefix().'_schema'; |
|
71 | - if ($this->cache->contains($cacheKey)) { |
|
72 | - $this->schema = $this->cache->fetch($cacheKey); |
|
73 | - } else { |
|
74 | - $this->schema = $this->connection->getSchemaManager()->createSchema(); |
|
75 | - $this->cache->save($cacheKey, $this->schema); |
|
76 | - } |
|
77 | - } |
|
78 | - return $this->schema; |
|
79 | - } |
|
63 | + /** |
|
64 | + * Returns the (cached) schema. |
|
65 | + * |
|
66 | + * @return Schema |
|
67 | + */ |
|
68 | + public function getSchema() { |
|
69 | + if ($this->schema === null) { |
|
70 | + $cacheKey = $this->getCachePrefix().'_schema'; |
|
71 | + if ($this->cache->contains($cacheKey)) { |
|
72 | + $this->schema = $this->cache->fetch($cacheKey); |
|
73 | + } else { |
|
74 | + $this->schema = $this->connection->getSchemaManager()->createSchema(); |
|
75 | + $this->cache->save($cacheKey, $this->schema); |
|
76 | + } |
|
77 | + } |
|
78 | + return $this->schema; |
|
79 | + } |
|
80 | 80 | |
81 | - /** |
|
82 | - * Returns the list of pivot tables linked to table $tableName |
|
83 | - * @param string $tableName |
|
84 | - * @return array|string[] |
|
85 | - */ |
|
86 | - public function getPivotTableLinkedToTable($tableName) { |
|
87 | - $cacheKey = $this->getCachePrefix().'_pivottables_link'; |
|
88 | - if ($this->cache->contains($cacheKey)) { |
|
89 | - return $this->cache->fetch($cacheKey); |
|
90 | - } |
|
81 | + /** |
|
82 | + * Returns the list of pivot tables linked to table $tableName |
|
83 | + * @param string $tableName |
|
84 | + * @return array|string[] |
|
85 | + */ |
|
86 | + public function getPivotTableLinkedToTable($tableName) { |
|
87 | + $cacheKey = $this->getCachePrefix().'_pivottables_link'; |
|
88 | + if ($this->cache->contains($cacheKey)) { |
|
89 | + return $this->cache->fetch($cacheKey); |
|
90 | + } |
|
91 | 91 | |
92 | - $pivotTables = []; |
|
92 | + $pivotTables = []; |
|
93 | 93 | |
94 | - $junctionTables = $this->schemaAnalyzer->detectJunctionTables(); |
|
95 | - foreach ($junctionTables as $table) { |
|
96 | - $fks = $table->getForeignKeys(); |
|
97 | - foreach ($fks as $fk) { |
|
98 | - if ($fk->getForeignTableName() == $tableName) { |
|
99 | - $pivotTables[] = $table->getName(); |
|
100 | - break; |
|
101 | - } |
|
102 | - } |
|
103 | - } |
|
94 | + $junctionTables = $this->schemaAnalyzer->detectJunctionTables(); |
|
95 | + foreach ($junctionTables as $table) { |
|
96 | + $fks = $table->getForeignKeys(); |
|
97 | + foreach ($fks as $fk) { |
|
98 | + if ($fk->getForeignTableName() == $tableName) { |
|
99 | + $pivotTables[] = $table->getName(); |
|
100 | + break; |
|
101 | + } |
|
102 | + } |
|
103 | + } |
|
104 | 104 | |
105 | - $this->cache->save($cacheKey, $pivotTables); |
|
106 | - return $pivotTables; |
|
107 | - } |
|
105 | + $this->cache->save($cacheKey, $pivotTables); |
|
106 | + return $pivotTables; |
|
107 | + } |
|
108 | 108 | |
109 | 109 | |
110 | 110 | } |