From a8bef370d3148d8a9d0a3ffc5ce906ee0c08d792 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 21 Oct 2016 23:04:04 +0000 Subject: [PATCH] Some code adjustements and performance improvements to the DFRN feed. --- include/Core/Config.php | 38 +++++++++++++++++--------------------- include/Core/PConfig.php | 28 ++++++++++++++-------------- include/dbclean.php | 7 +++++++ include/dfrn.php | 17 +++++------------ 4 files changed, 43 insertions(+), 47 deletions(-) diff --git a/include/Core/Config.php b/include/Core/Config.php index d76a7c2b2b..de371eb7f3 100644 --- a/include/Core/Config.php +++ b/include/Core/Config.php @@ -33,8 +33,8 @@ class Config { global $a; $r = q("SELECT `v`, `k` FROM `config` WHERE `cat` = '%s' ORDER BY `cat`, `k`, `id`", dbesc($family)); - if(count($r)) { - foreach($r as $rr) { + if (count($r)) { + foreach ($r as $rr) { $k = $rr['k']; if ($family === 'config') { $a->config[$k] = $rr['v']; @@ -70,20 +70,20 @@ class Config { * If true the config is loaded from the db and not from the cache (default: false) * @return mixed Stored value or null if it does not exist */ - public static function get($family, $key, $default_value=null, $refresh = false) { + public static function get($family, $key, $default_value = null, $refresh = false) { global $a; - if(! $refresh) { + if (!$refresh) { // Looking if the whole family isn't set - if(isset($a->config[$family])) { - if($a->config[$family] === '!!') { + if (isset($a->config[$family])) { + if ($a->config[$family] === '!!') { return $default_value; } } - if(isset($a->config[$family][$key])) { - if($a->config[$family][$key] === '!!') { + if (isset($a->config[$family][$key])) { + if ($a->config[$family][$key] === '!!') { return $default_value; } return $a->config[$family][$key]; @@ -94,7 +94,7 @@ class Config { dbesc($family), dbesc($key) ); - if(count($ret)) { + if (count($ret)) { // manage array value $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $a->config[$family][$key] = $val; @@ -123,13 +123,13 @@ class Config { * The value to store * @return mixed Stored $value or false if the database update failed */ - public static function set($family,$key,$value) { + public static function set($family, $key, $value) { global $a; $a->config[$family][$key] = $value; // manage array value - $dbvalue = (is_array($value)?serialize($value):$value); + $dbvalue = (is_array($value) ? serialize($value):$value); $dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue); // The "INSERT" command is very cost intense. It saves performance to do it this way. @@ -138,25 +138,21 @@ class Config { dbesc($key) ); - // It would be better to use the dbm class. - // But there is an autoloader issue that I don't know how to fix: - // "Class 'Friendica\Core\dbm' not found" - //if (!dbm::is_result($ret)) - if (!$ret) + if (!$ret) { $ret = q("INSERT INTO `config` (`cat`, `k`, `v`) VALUES ('%s', '%s', '%s') ON DUPLICATE KEY UPDATE `v` = '%s'", dbesc($family), dbesc($key), dbesc($dbvalue), dbesc($dbvalue) ); - elseif ($ret[0]['v'] != $dbvalue) + } elseif ($ret[0]['v'] != $dbvalue) { $ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s'", dbesc($dbvalue), dbesc($family), dbesc($key) ); - - if($ret) + } + if ($ret) return $value; return $ret; @@ -174,10 +170,10 @@ class Config { * The configuration key to delete * @return mixed */ - public static function delete($family,$key) { + public static function delete($family, $key) { global $a; - if(x($a->config[$family],$key)) + if (x($a->config[$family],$key)) unset($a->config[$family][$key]); $ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s'", dbesc($family), diff --git a/include/Core/PConfig.php b/include/Core/PConfig.php index 70f83adcbc..764ab8ae85 100644 --- a/include/Core/PConfig.php +++ b/include/Core/PConfig.php @@ -27,14 +27,14 @@ class PConfig { * The category of the configuration value * @return void */ - public static function load($uid,$family) { + public static function load($uid, $family) { global $a; $r = q("SELECT `v`,`k` FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d ORDER BY `cat`, `k`, `id`", dbesc($family), intval($uid) ); - if(count($r)) { - foreach($r as $rr) { + if (count($r)) { + foreach ($r as $rr) { $k = $rr['k']; $a->config[$uid][$family][$k] = $rr['v']; } @@ -67,16 +67,16 @@ class PConfig { global $a; - if(! $refresh) { + if (!$refresh) { // Looking if the whole family isn't set - if(isset($a->config[$uid][$family])) { - if($a->config[$uid][$family] === '!!') { + if (isset($a->config[$uid][$family])) { + if ($a->config[$uid][$family] === '!!') { return $default_value; } } - if(isset($a->config[$uid][$family][$key])) { - if($a->config[$uid][$family][$key] === '!!') { + if (isset($a->config[$uid][$family][$key])) { + if ($a->config[$uid][$family][$key] === '!!') { return $default_value; } return $a->config[$uid][$family][$key]; @@ -89,13 +89,12 @@ class PConfig { dbesc($key) ); - if(count($ret)) { + if (count($ret)) { $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $a->config[$uid][$family][$key] = $val; return $val; - } - else { + } else { $a->config[$uid][$family][$key] = '!!'; } return $default_value; @@ -124,7 +123,7 @@ class PConfig { global $a; // manage array value - $dbvalue = (is_array($value)?serialize($value):$value); + $dbvalue = (is_array($value) ? serialize($value):$value); $a->config[$uid][$family][$key] = $value; @@ -154,8 +153,9 @@ class PConfig { dbesc($key) ); - if($ret) + if ($ret) return $value; + return $ret; } @@ -175,7 +175,7 @@ class PConfig { public static function delete($uid,$family,$key) { global $a; - if(x($a->config[$uid][$family],$key)) + if (x($a->config[$uid][$family],$key)) unset($a->config[$uid][$family][$key]); $ret = q("DELETE FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'", intval($uid), diff --git a/include/dbclean.php b/include/dbclean.php index 860d0f2202..746c39ed97 100644 --- a/include/dbclean.php +++ b/include/dbclean.php @@ -1,4 +1,8 @@ '%s' OR `item`.`changed` > '%s' ) - // dbesc($check_date), - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`, `contact`.`name-date`, `contact`.`uri-date`, `contact`.`avatar-date`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `sign`.`signed_text`, `sign`.`signature`, `sign`.`signer` - FROM `item` $sql_post_table + FROM `item` USE INDEX (`uid_wall_changed`, `uid_type_changed`) $sql_post_table STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + AND NOT `contact`.`blocked` LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id` - WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`parent` != 0 - AND ((`item`.`wall` = 1) $visibility) AND `item`.$date_field > '%s' + WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`moderated` AND `item`.`parent` != 0 + AND `item`.`wall` AND `item`.`changed` > '%s' $sql_extra - ORDER BY $sql_order LIMIT 0, 300", + ORDER BY `item`.`parent` ".$sort.", `item`.`created` ASC LIMIT 0, 300", intval($owner_id), dbesc($check_date), dbesc($sort)