<?php $app_start_time = microtime(true); // Setting up error reporting and display errors for the startup process error_reporting(-1); ini_set('display_errors', 1); // Set default timezone to avoid timezone warnings date_default_timezone_set('Europe/Paris'); // Server resources ini_set('memory_limit', '128M'); ini_set('max_execution_time', 60); ini_set('post_max_size', '2M'); ini_set('upload_max_filesize', '2M'); // Encoding ini_set('default_charset', 'UTF-8'); mb_internal_encoding('UTF-8'); require '../vendor/autoload.php'; $actionsClass = '\\Rperello\\Picnic\\Actions'; $config = array('public_path' => realpath(__DIR__), 'prefix_mask' => 'th-[a-z0-9A-Z]{1,10}', 'path_mask' => '/.*/', 'allowed_tasks' => array("th-bw" => array($actionsClass, 'grayscale'), "th-ri_150_150" => array($actionsClass, 'resizeInside'), "th-ro_150_150" => array($actionsClass, 'resizeOutside'), "th-cn_150_150(_FFFFFF|_000000|_FF00AA)?" => array($actionsClass, 'resizeContainCentered'), "th-cv_(200_100|400_200|800_400)" => array($actionsClass, 'resizeCoverCentered'), "th-ac_0" => array($actionsClass, 'autoCrop'))); $picnic = new \Rperello\Picnic\Server($config); try { $picnic->process(); } catch (Exception $exc) { error_log($exc->getTraceAsString()); $picnic->halt(); }
<?php Route::get('/{path}/{prefix}{task?}/{filename}', function ($path, $prefix, $task, $filename) { $picnic = new \Rperello\Picnic\Server(array('public_path' => Config::get('picnic::public_path'), 'path_mask' => Config::get('picnic::path_mask'), 'allowed_tasks' => Config::get('picnic::allowed_tasks'))); $picnic->process(); })->where(array('path' => trim(Config::get('picnic::path_mask'), '/'), 'prefix' => Config::get('picnic::prefix_mask'), 'task' => '[a-zA-Z0-9_]+', 'filename' => '(.*)\\.(png|jpg|jpeg|gif)'));