✅ Fixed bulk conversion getting stuck on missing files ✅ Added robust error handling and timeout protection ✅ Improved JavaScript response parsing ✅ Added file existence validation ✅ Fixed missing PHP class imports ✅ Added comprehensive try-catch error recovery 🔧 Key fixes: - File existence checks before conversion attempts - 30-second timeout protection per file - Graceful handling of 500 errors and JSON parsing issues - Automatic continuation to next file on failures - Cache busting for JavaScript updates 🎯 Result: Bulk conversion now completes successfully even with missing files 🚀 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace WebPExpress;
|
|
|
|
class DestinationOptions
|
|
{
|
|
|
|
public $mingled;
|
|
public $useDocRoot;
|
|
public $replaceExt;
|
|
public $scope;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param array $imageRootDef assoc array containing "id", "url" and either "abs-path", "rel-path" or both.
|
|
*/
|
|
public function __construct($mingled, $useDocRoot, $replaceExt, $scope)
|
|
{
|
|
$this->mingled = $mingled;
|
|
$this->useDocRoot = $useDocRoot;
|
|
$this->replaceExt = $replaceExt;
|
|
$this->scope = $scope;
|
|
}
|
|
|
|
/**
|
|
* Set properties from config file
|
|
*
|
|
* @param array $config WebP Express configuration object
|
|
*/
|
|
public static function createFromConfig(&$config)
|
|
{
|
|
return new DestinationOptions(
|
|
$config['destination-folder'] == 'mingled', // "mingled" or "separate"
|
|
$config['destination-structure'] == 'doc-root', // "doc-root" or "image-roots"
|
|
$config['destination-extension'] == 'set', // "set" or "append"
|
|
$config['scope']
|
|
);
|
|
}
|
|
|
|
|
|
}
|