PHP code example of ambroisemaupate / intervention-request
1. Go to this page and download the library: Download ambroisemaupate/intervention-request library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ambroisemaupate / intervention-request example snippets
docker pull ambroisemaupate/intervention-request;
# Make sure to share your volume with READ-ONLY flag
docker run -v "/my/images/folder:/var/www/html/web/images:ro" -p 8080:80/tcp ambroisemaupate/intervention-request;
use AM\InterventionRequest\Configuration;
use AM\InterventionRequest\InterventionRequest;
use AM\InterventionRequest\LocalFileResolver;
/*
* A test configuration
*/
$conf = new Configuration();
$conf->setCachePath(APP_ROOT.'/cache');
$conf->setImagesPath(APP_ROOT.'/files');
// Comment this line if jpegoptim is not available on your server
$conf->setJpegoptimPath('/usr/local/bin/jpegoptim');
// Comment this line if pngquant is not available on your server
$conf->setPngquantPath('/usr/local/bin/pngquant');
$fileResolver = new LocalFileResolver($conf->getImagesPath());
/*
* InterventionRequest constructor asks 2 objects:
*
* - AM\InterventionRequest\Configuration
* - AM\InterventionRequest\FileResolverInterface
*/
$intRequest = new InterventionRequest($conf, $fileResolver);
// Handle request and process image
$intRequest->handleRequest($request);
// getResponse returns a Symfony\Component\HttpFoundation\Response object
// with image mime-type and data. All you need is to send it!
return $intRequest->getResponse($request);
use AM\InterventionRequest\ShortUrlExpander;
/*
* Handle short url with Url rewriting
*/
$expander = new ShortUrlExpander($request);
// Enables using /cache in request path to mimic a pass-through file serve.
//$expander->setIgnorePath('/cache');
$params = $expander->parsePathInfo();
if (null !== $params) {
// this will convert rewritten path to request with query params
$expander->injectParamsToRequest($params['queryString'], $params['filename']);
}
$conf = new Configuration();
$conf->setCachePath(APP_ROOT . '/cache');
$conf->setUsePassThroughCache(true);
$expander = new ShortUrlExpander($request);
// Enables using /cache in request path to mimic a pass-through file serve.
$expander->setIgnorePath('/cache');
/*
* Handle main image request with a
* custom list of Processors.
*/
$iRequest = new InterventionRequest(
$conf,
$fileResolver,
$log,
[
new Processor\WidenProcessor(),
// add or replace with your own Processors
]
);
public static function getSubscribedEvents()
{
return [
ImageSavedEvent::class => 'onImageSaved',
];
}