- Using APC to store config values (when present)

- Enabling interlacing for pictures
This commit is contained in:
Michael Vogel 2013-08-09 18:28:50 +02:00
parent 6576aae938
commit d92a348cf0
2 changed files with 43 additions and 4 deletions

View file

@ -534,6 +534,9 @@ class Photo {
ob_start(); ob_start();
// Enable interlacing
imageinterlace($this->image, true);
switch($this->getType()){ switch($this->getType()){
case "image/png": case "image/png":
$quality = get_config('system','png_quality'); $quality = get_config('system','png_quality');
@ -676,6 +679,7 @@ function guess_image_type($filename, $fromcurl=false) {
*/ */
$image = new Imagick($filename); $image = new Imagick($filename);
$type = $image->getImageMimeType(); $type = $image->getImageMimeType();
$image->setInterlaceScheme(Imagick::INTERLACE_PLANE);
} else { } else {
$ext = pathinfo($filename, PATHINFO_EXTENSION); $ext = pathinfo($filename, PATHINFO_EXTENSION);
$types = Photo::supportedTypes(); $types = Photo::supportedTypes();

View file

@ -18,6 +18,9 @@
if(! function_exists('load_config')) { if(! function_exists('load_config')) {
function load_config($family) { function load_config($family) {
global $a; global $a;
// To-Do: How to integrate APC here?
$r = q("SELECT * FROM `config` WHERE `cat` = '%s'", dbesc($family)); $r = q("SELECT * FROM `config` WHERE `cat` = '%s'", dbesc($family));
if(count($r)) { if(count($r)) {
foreach($r as $rr) { foreach($r as $rr) {
@ -67,9 +70,16 @@ function get_config($family, $key, $instore = false) {
if (function_exists("apc_fetch") AND function_exists("apc_exists")) if (function_exists("apc_fetch") AND function_exists("apc_exists"))
if (apc_exists($family."|".$key)) { if (apc_exists($family."|".$key)) {
$val = apc_fetch($family."|".$key); $val = apc_fetch($family."|".$key);
//logger("APC: fetched stored value ".$family."|".$key, LOGGER_DEBUG);
$a->config[$family][$key] = $val; $a->config[$family][$key] = $val;
return $val;
} if ($val === '!<unset>!')
return false;
else
return $val;
} else
//logger("APC: cache miss for value ".$family."|".$key, LOGGER_DEBUG);
$ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
dbesc($family), dbesc($family),
@ -79,10 +89,19 @@ function get_config($family, $key, $instore = false) {
// manage array value // manage array value
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$family][$key] = $val; $a->config[$family][$key] = $val;
// If APC is enabled then store the data there
if (function_exists("apc_store"))
apc_store($family."|".$key, $val, 600);
return $val; return $val;
} }
else { else {
$a->config[$family][$key] = '!<unset>!'; $a->config[$family][$key] = '!<unset>!';
// If APC is enabled then store the data there
if (function_exists("apc_store"))
apc_store($family."|".$key, '!<unset>!', 600);
} }
return false; return false;
}} }}
@ -181,9 +200,16 @@ function get_pconfig($uid,$family, $key, $instore = false) {
if (function_exists("apc_fetch") AND function_exists("apc_exists")) if (function_exists("apc_fetch") AND function_exists("apc_exists"))
if (apc_exists($uid."|".$family."|".$key)) { if (apc_exists($uid."|".$family."|".$key)) {
$val = apc_fetch($uid."|".$family."|".$key); $val = apc_fetch($uid."|".$family."|".$key);
//logger("APC: fetched stored value ".$uid."|".$family."|".$key, LOGGER_DEBUG);
$a->config[$uid][$family][$key] = $val; $a->config[$uid][$family][$key] = $val;
return $val;
} if ($val === '!<unset>!')
return false;
else
return $val;
} else
//logger("APC: cache miss for value ".$family."|".$key, LOGGER_DEBUG);
$ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
intval($uid), intval($uid),
@ -194,10 +220,19 @@ function get_pconfig($uid,$family, $key, $instore = false) {
if(count($ret)) { if(count($ret)) {
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']); $val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$uid][$family][$key] = $val; $a->config[$uid][$family][$key] = $val;
// If APC is enabled then store the data there
if (function_exists("apc_store"))
apc_store($uid."|".$family."|".$key, $val, 600);
return $val; return $val;
} }
else { else {
$a->config[$uid][$family][$key] = '!<unset>!'; $a->config[$uid][$family][$key] = '!<unset>!';
// If APC is enabled then store the data there
if (function_exists("apc_store"))
apc_store($uid."|".$family."|".$key, '!<unset>!', 600);
} }
return false; return false;
}} }}