perform caching of jsonld schemas
This commit is contained in:
parent
373af6d4f4
commit
b0cdec0c35
@ -82,6 +82,8 @@ class LDSignatures {
|
|||||||
if(! is_object($data))
|
if(! is_object($data))
|
||||||
return '';
|
return '';
|
||||||
|
|
||||||
|
jsonld_set_document_loader('jsonld_document_loader');
|
||||||
|
|
||||||
return jsonld_normalize($data,[ 'algorithm' => 'URDNA2015', 'format' => 'application/nquads' ]);
|
return jsonld_normalize($data,[ 'algorithm' => 'URDNA2015', 'format' => 'application/nquads' ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1944,3 +1944,34 @@ function getBestSupportedMimeType($mimeTypes = null, $acceptedTypes = false) {
|
|||||||
// no mime-type found
|
// no mime-type found
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function jsonld_document_loader($url) {
|
||||||
|
|
||||||
|
// perform caching for jsonld normaliser
|
||||||
|
|
||||||
|
require_once('library/jsonld/jsonld.php');
|
||||||
|
|
||||||
|
$cachepath = 'store/[data]/ldcache';
|
||||||
|
if(! is_dir($cachepath))
|
||||||
|
os_mkdir($cachepath,STORAGE_DEFAULT_PERMISSIONS,true);
|
||||||
|
|
||||||
|
$filename = $cachepath . '/' . urlencode($url);
|
||||||
|
if(file_exists($filename) && filemtime($filename) > time() - (12 * 60 * 60)) {
|
||||||
|
return json_decode(file_get_contents($filename));
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = jsonld_default_document_loader($url);
|
||||||
|
if($r) {
|
||||||
|
file_put_contents($filename,json_encode($r));
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
logger('not found');
|
||||||
|
if(file_exists($filename)) {
|
||||||
|
return json_decode(file_get_contents($filename));
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user