PHP code example of rvdlee / zf-image-optimiser

1. Go to this page and download the library: Download rvdlee/zf-image-optimiser 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/ */

    

rvdlee / zf-image-optimiser example snippets


# ... config use statements

return [
    'rvdlee' => [
        'zf-image-optimiser' => [
            # ... Other adapters
            Pngquant2::class => [
                'binary-options'  => [
                    '--verbose',
                    '--force',
                    '--strip',
                    '--speed 1',
                    '--quality=75-100',
                ],
                'validator-chain' => [
                    ['name' => IsImage::class],
                    [
                        'name'    => Extension::class,
                        'options' => [
                            'case'       => false,
                            'extensions' => 'png',
                        ],
                    ],
                    [
                        'name'    => MimeType::class,
                        'options' => [
                            'mimeType' => ['image/png'],
                        ],
                    ],
                ],
            ],
            'enabled'        => [
                # ... Other adapters
                Pngquant2::class,
            ],
        ],
    ],
];

# ... Other InputFilters

$this->add(
    [
        'type'       => FileInput::class,
        'name'       => 'image',
        '              'target'             => <my_target_path>,
                    'useUploadName'      => true,
                    'useUploadExtension' => true,
                    'overwrite'          => false,
                    'randomize'          => false,
                ],
            ],
            ['name' => ImageOptimiser::class],
        ],
        'validators' => [
            ['name' => IsImage::class],
            [
                'name'    => FilesSize::class,
                'options' => [
                    'min' => '4kB',
                    'max' => '8MB',
                ],
            ],
            [
                'name'    => Extension::class,
                'options' => [
                    'case'       => false,
                    'extensions' => 'jpg,png',
                ],
            ],
            [
                'name'    => MimeType::class,
                'options' => [
                    'mimeType' => [
                        'image/jpeg',
                        'image/png',
                    ],
                ],
            ],
            [
                'name'    => ImageSize::class,
                'options' => [
                    'minWidth'  => 128,
                    'minHeight' => 128,
                    'maxWidth'  => 4096,
                    'maxHeight' => 4096,
                ],
            ],
        ],
    ]
);

# ... Other InputFilters

class SomeFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        /** @var ImageOptimiserService $imageOptimiserService */
        $imageOptimiserService = $container->get(ImageOptimiserService::class);

        # or... provide your own LoggerInterface

        /** @var Logger $logger */
        $logger = $container->get(Logger::class);
        /** @var Stream $writer */
        $logger->addWriter(new Stream('php://output'));
        /** @var ImageOptimiserService $imageOptimiserService */
        $imageOptimiserService = $container->build(ImageOptimiserService::class, ['logger' => $logger]);

        # ... other factory stuff
    }
}

/** @var array|WriterInterface[] $writers */
$writers = $imageOptimiserService->getLogger()->getWriters()->toArray();
/** @var Zend\Log\Writer\Mock $mockWriter */
$mockWriter = $writers[0];
/** @var array $events */
$events = $mockWriter->events;
bash
php ./public/index.php image-optimiser --image='./public/images/test.png'