%PDF- %PDF-
| Direktori : /var/www/projetos/stb.ind.br/wp-content/plugins/webp-express/lib/classes/ |
| Current File : /var/www/projetos/stb.ind.br/wp-content/plugins/webp-express/lib/classes/TestRun.php |
<?php
namespace WebPExpress;
use \WebPExpress\Config;
use \WebPExpress\ConvertersHelper;
use \WebPExpress\Paths;
use \WebPExpress\FileHelper;
use \WebPConvert\Convert\ConverterFactory;
use \WebPConvert\Convert\Helpers\JpegQualityDetector;
include_once WEBPEXPRESS_PLUGIN_DIR . '/vendor/autoload.php';
/**
*
*/
class TestRun
{
public static $converterStatus = null; // to cache the result
/**
* Get a test result object OR false, if tests cannot be made.
*
* @return object|false
*/
public static function getConverterStatus() {
//return false;
// Is result cached?
if (isset(self::$converterStatus)) {
return self::$converterStatus;
}
$source = Paths::getWebPExpressPluginDirAbs() . '/test/small-q61.jpg';
$destination = Paths::getUploadDirAbs() . '/webp-express-test-conversion.webp';
if (!FileHelper::canCreateFile($destination)) {
$destination = Paths::getContentDirAbs() . '/webp-express-test-conversion.webp';
}
if (!FileHelper::canCreateFile($destination)) {
self::$converterStatus = false; // // cache the result
return false;
}
$workingConverters = [];
$errors = [];
// We need wod options.
// But we cannot simply use loadWodOptions - because that would leave out the deactivated
// converters. And we need to test all converters - even the deactivated ones.
// So we load config, set "deactivated" to false, and generate Wod options from the config
$config = Config::loadConfigAndFix();
// set deactivated to false on all converters
foreach($config['converters'] as &$converter) {
$converter['deactivated'] = false;
}
$options = Config::generateWodOptionsFromConfigObj($config);
$options['converters'] = ConvertersHelper::normalize($options['webp-convert']['convert']['converters']);
//echo '<pre>' . print_r($options, true) . '</pre>';
foreach ($options['converters'] as $converter) {
$converterId = $converter['converter'];
try {
$converterOptions = array_merge($options, $converter['options']);
unset($converterOptions['converters']);
//ConverterHelper::runConverter($converterId, $source, $destination, $converterOptions);
$converterInstance = ConverterFactory::makeConverter(
$converterId,
$source,
$destination,
$converterOptions
);
$converterInstance->doConvert();
$workingConverters[] = $converterId;
} catch (\Exception $e) {
//echo $e->getMessage() . '<br>';
$errors[$converterId] = $e->getMessage();
}
}
//print_r($errors);
// cache the result
self::$converterStatus = [
'workingConverters' => $workingConverters,
'errors' => $errors
];
return self::$converterStatus;
}
public static $localQualityDetectionWorking = null; // to cache the result
public static function isLocalQualityDetectionWorking() {
if (isset(self::$localQualityDetectionWorking)) {
return self::$localQualityDetectionWorking;
} else {
$q = JpegQualityDetector::detectQualityOfJpg(
Paths::getWebPExpressPluginDirAbs() . '/test/small-q61.jpg'
);
self::$localQualityDetectionWorking = ($q === 61);
return self::$localQualityDetectionWorking;
}
}
}