mirror of
https://github.com/friendica/friendica
synced 2025-04-29 03:04:22 +02:00
Split DBStructure & View to avoid DB-calls and dependencies for basic operations
- new "Definition" classes vor DB and Views - new "Writer" classes to create SQL definitions for DB and Views - DBStructure & View are responsible to execute DB-querys
This commit is contained in:
parent
a2c929d128
commit
a910fd8864
30 changed files with 898 additions and 608 deletions
|
@ -27,6 +27,7 @@ use Friendica\Core\System;
|
|||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Database\DBStructure;
|
||||
use Friendica\DI;
|
||||
use Friendica\Protocol\Activity;
|
||||
|
||||
class Post
|
||||
|
@ -45,7 +46,7 @@ class Post
|
|||
throw new BadMethodCallException('Empty URI_id');
|
||||
}
|
||||
|
||||
$fields = DBStructure::getFieldsForTable('post', $data);
|
||||
$fields = DI::dbaDefinition()->getFieldsForTable('post', $data);
|
||||
|
||||
// Additionally assign the key fields
|
||||
$fields['uri-id'] = $uri_id;
|
||||
|
@ -524,7 +525,7 @@ class Post
|
|||
// To ensure the data integrity we do it in an transaction
|
||||
DBA::transaction();
|
||||
|
||||
$update_fields = DBStructure::getFieldsForTable('post-user', $fields);
|
||||
$update_fields = DI::dbaDefinition()->getFieldsForTable('post-user', $fields);
|
||||
if (!empty($update_fields)) {
|
||||
$affected_count = 0;
|
||||
$posts = DBA::select('post-user-view', ['post-user-id'], $condition);
|
||||
|
@ -541,7 +542,7 @@ class Post
|
|||
$affected = $affected_count;
|
||||
}
|
||||
|
||||
$update_fields = DBStructure::getFieldsForTable('post-content', $fields);
|
||||
$update_fields = DI::dbaDefinition()->getFieldsForTable('post-content', $fields);
|
||||
if (!empty($update_fields)) {
|
||||
$affected_count = 0;
|
||||
$posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
|
||||
|
@ -558,7 +559,7 @@ class Post
|
|||
$affected = max($affected, $affected_count);
|
||||
}
|
||||
|
||||
$update_fields = DBStructure::getFieldsForTable('post', $fields);
|
||||
$update_fields = DI::dbaDefinition()->getFieldsForTable('post', $fields);
|
||||
if (!empty($update_fields)) {
|
||||
$affected_count = 0;
|
||||
$posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
|
||||
|
@ -592,7 +593,7 @@ class Post
|
|||
$affected = max($affected, $affected_count);
|
||||
}
|
||||
|
||||
$update_fields = DBStructure::getFieldsForTable('post-thread', $fields);
|
||||
$update_fields = DI::dbaDefinition()->getFieldsForTable('post-thread', $fields);
|
||||
if (!empty($update_fields)) {
|
||||
$affected_count = 0;
|
||||
$posts = DBA::select('post-user-view', ['uri-id'], $thread_condition, ['group_by' => ['uri-id']]);
|
||||
|
@ -609,7 +610,7 @@ class Post
|
|||
$affected = max($affected, $affected_count);
|
||||
}
|
||||
|
||||
$update_fields = DBStructure::getFieldsForTable('post-thread-user', $fields);
|
||||
$update_fields = DI::dbaDefinition()->getFieldsForTable('post-thread-user', $fields);
|
||||
if (!empty($update_fields)) {
|
||||
$affected_count = 0;
|
||||
$posts = DBA::select('post-user-view', ['post-user-id'], $thread_condition);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue