Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 58
Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler
<?php
/*
* This file is part of the `liip/LiipImagineBundle` project.
*
* (c) https://github.com/liip/LiipImagineBundle/graphs/contributors
*
* For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code.
*/
namespace Liip\ImagineBundle\Imagine\Filter\PostProcessor ;
use Liip\ImagineBundle\Binary\BinaryInterface ;
use Liip\ImagineBundle\Binary\FileBinaryInterface ;
use Symfony\Component\Filesystem\Exception\IOException ;
use Symfony\Component\Filesystem\Filesystem ;
use Symfony\Component\Process\Process ;
abstract class AbstractPostProcessor implements PostProcessorInterface
{
/**
* @var string
*/
protected $executablePath ;
/**
* @var string|null
*/
protected $temporaryRootPath ;
/**
* @var Filesystem
*/
private $filesystem ;
public function __construct ( string $executablePath , string $temporaryRootPath = null )
{
$this -> executablePath = $executablePath ;
$this -> temporaryRootPath = $temporaryRootPath ;
$this -> filesystem = new Filesystem ();
}
protected function createProcess (array $arguments = [], array $options = []): Process
{
$process = new Process ( $arguments );
if (!isset($options [ 'process' ])) {
return $process ;
}
if (isset($options [ 'process' ][ 'timeout' ])) {
$process -> setTimeout ( $options [ 'process' ][ 'timeout' ]);
}
if (isset($options [ 'process' ][ 'working_directory' ])) {
$process -> setWorkingDirectory ( $options [ 'process' ][ 'working_directory' ]);
}
if (isset($options [ 'process' ][ 'environment_variables' ]) && \is_array ( $options [ 'process' ][ 'environment_variables' ])) {
$process -> setEnv ( $options [ 'process' ][ 'environment_variables' ]);
}
return $process ;
}
protected function isBinaryTypeJpgImage ( BinaryInterface $binary ): bool
{
return $this -> isBinaryTypeMatch ( $binary , [ 'image/jpeg' , 'image/jpg' ]);
}
protected function isBinaryTypePngImage ( BinaryInterface $binary ): bool
{
return $this -> isBinaryTypeMatch ( $binary , [ 'image/png' ]);
}
protected function isBinaryTypeMatch ( BinaryInterface $binary , array $types ): bool
{
return \in_array ( $binary -> getMimeType (), $types , true );
}
protected function writeTemporaryFile ( BinaryInterface $binary , array $options = [], string $prefix = null ): string
{
$temporary = $this -> acquireTemporaryFilePath ( $options , $prefix );
if ($binary instanceof FileBinaryInterface ) {
$this -> filesystem -> copy ( $binary -> getPath (), $temporary , true );
} else {
$this -> filesystem -> dumpFile ( $temporary , $binary -> getContent ());
}
return $temporary ;
}
protected function acquireTemporaryFilePath (array $options , string $prefix = null ): string
{
$root = $options [ 'temp_dir' ] ?? $this -> temporaryRootPath ?: sys_get_temp_dir ();
if (!is_dir ( $root )) {
try {
$this -> filesystem -> mkdir ( $root );
} catch (IOException $exception ) {
// ignore failure as "tempnam" function will revert back to system default tmp path as last resort
}
}
if (false === $file = @ tempnam ( $root , $prefix ?: 'post-processor' )) {
throw new \RuntimeException ( sprintf ( 'Temporary file cannot be created in "%s"' , $root ));
}
return $file ;
}
/**
* @param int[] $validReturns
* @param string[] $errors
*/
protected function isSuccessfulProcess ( Process $process , array $validReturns = [ 0 ], array $errors = [ 'ERROR' ]): bool
{
if (\count ( $validReturns ) > 0 && ! \in_array ( $process -> getExitCode (), $validReturns , true )) {
return false ;
}
foreach ($errors as $string ) {
if (false !== mb_strpos ( $process -> getOutput (), $string )) {
return false ;
}
}
return true ;
}
protected function triggerSetterMethodDeprecation ( string $method ): void
{
@trigger_error ( sprintf ( 'The %s() method was deprecated in 2.2 and will be removed in 3.0. You must '
. 'setup the class state via its __construct() method. You can still pass filter-specific options to the ' .
'process() method to overwrite behavior.' , $method ), E_USER_DEPRECATED );
}
}