Skip to content

2.0.0 Release: Major Release

Compare
Choose a tag to compare
@robfrawley robfrawley released this 01 May 20:12
· 664 commits to 2.x since this release
2.0.0
66959e1

Changelog

Full Changelog

  • [Post Processors] [Filters] [BC BREAK] Remove configurable post processor interface for one interface and cleanup filter manager #1075 (robfrawley)
  • [Meta] Add code of conduct and update contributor instructions #1071 (robfrawley)
  • [Dependencies] Update imagine/imagine to ^0.7.1,<0.8 #1067 (robfrawley)
  • [Documentation] Correct indentation in AWS-S3 cache resolver documentation #1063 (robfrawley)
  • [CS] Globally update code style using new php-cs-fixer rules #1058 (robfrawley)
  • [CI] [CS] Add a required php-cs-fixer build run to Travis matrix #1057 (robfrawley)
  • [Tests] Add missing PHPUnit @Covers annotations #1054 (robfrawley)
  • [CI] Move the "simple-phpunit install" command to Travis install section to collapse the output #1048 (dbu)
  • [CS] [Dependencies] [Dependency Injection] [Form] [General] Update compiler log format, remove legacy code, remove deprecated, fix docblocks/style, general Travis config, upgrade coveralls, and general fixes #1047 (robfrawley)
  • [CS] Changes to support new php-cs-fixer rule set #1046 (robfrawley)
  • [Dependencies] Revert php-cs-fixer development dependency removal #1045 (dbu)
  • [Dependency Injection] Detect proper web root path based on Symfony kernel version #1044 (robfrawley)
  • [Async] [DI] Make resolve_cache_processor a public service #1043 (silverbackdan)
  • [CS] Implement new php-cs-fixer rules and related code cleanup #1040 (sebastianblum)
  • [Dependency Injection] Change cache manager from private service to public to fix deprecation #1038 (fabianoroberto)
  • [CI] Extend and enhance Travis build matrix #1035 (sebastianblum)
  • [Dependencies] Remove unused php-cs-fixer from require-dev #1031 (dbu)
  • [Tests] [CI] [Dependencies] Refactored Travis config to use simple-phpunit and remove phpunit Composer dependency #1029 (sebastianblum)
  • [Documentation] Fix binary name in png-quant.rst #1026 (bruno-ds)
  • [Post-Processors] Replaced ProcessBuilder with Process and add additional tests #1025 (fabianbloching)
  • [Tests] Fix tests on Symfony 3.4 and 4.0 #1023 (lsmith77)
  • [Dependency Injection] Add alias for cache manager #1022 (garak)
  • [Documentation] Align example and description quality values in png-quant.rst #1020 (qkdreyer)
  • [Dependency Injection] Change imagine controller from private service to public service #1019 (michaelperrin)
  • [Dependencies] Enable Symfony 4.0 support #1013 (lsmith77)
  • [Dependencies] Enable Symfony 4.0 support #1010 (llaakkkk)
  • [Tests] [CI] Add PHP 7.2 to Travis test matrix #1009 (dbu)
  • [Documentation] Fix bucket parameter nesting level in aws_s3.rst YAML example #996 (bocharsky-bw)
  • [Data Loader] [Data Locator] [Dependency Injection] Pass root paths to FileSystemLocator during construction #930 (rpkamp)
  • [Dependency Injection] [Filter] Implement filter service abstraction for creating images #922 (rpkamp)

Upgrade

  • [Post Processor] [BC BREAK] The PostProcessorConfigurablePostProcessorInterface interface has been completely removed and the PostProcessorInterface interface has been updated to allow passing the configuration array to its process method as the second parameter. The PostProcessorInterface::process() now implements the following signature: process(BinaryInterface $binary, array $options = []): BinaryInterface. All custom post processors in your project must be updated to match this new signature.

  • [Dependencies] The imagine/Imagine dependency has been updated from the 0.6.x series to require 0.7.1 or greater. If you project has a hard dependency on any prior version, you will need to update your dependencies.

  • [Form] The legacy setDefaultOptions() and getName() methods on Form/Type/ImageType have been removed, as these methods are no longer required for Symfony. If using them, you will need to update your implementation.

  • [Dependency Injection] The DependencyInjection/Factory/ChildDefinitionTrait trait has been removed, as it handled logic to support legacy Symfony versions no longer targeted.

  • [Dependency Injection] The compiler pass log method signature has changed to log(ContainerBuilder $container, string $message, ...$replacements): void. If you are extending AbstractCompilerPass and using this protected method, you must update your usage.

  • [Dependency Injection] The default values for the liip_imagine.loaders.<name>.filesystem.data_root and liip_imagine.resolvers.<name>.web_path.web_root configuration options are now variable based on the Symfony version. For Symfony 4.0.0 and later, the value is %kernel.project_dir%/public, and for prior releases (such as the Symfony 3.x), the value is %kernel.project_dir%/web. This should automatically provide a suitable default for the different directory structures of the 4.x and 3.x Symfony releases.

  • [Dependency Injection] [Filter] A new filter service abstraction is available as liip_imagine.service.filter with a createFilteredBinary($path, $filter, array $runtimeFilters = []) method to quickly get the filtered binary image and a getUrlOfFilteredImage($path, $filter, $resolver = null) method to quickly resolve and get the filtered image URL.

  • [Data Loader] The FileSystemLoader::__construct() method signature has changed in accordance with the prior deprecation notice; the third parameter must be of signature \Liip\ImagineBundle\Binary\Locator\LocatorInterface $locator and the fourth parameter must be of signature array $dataRoots.

  • [Data Loader] The GridFSLoader data loader has been removed as the required mongo extension has been deprecated and will not be ported to PHP 7.x.

  • [Dependency Injection] A new interface \Liip\ImagineBundle\DependencyInjection/Factory/FactoryInterface has been introduced and is shared between the loaders (LoaderFactoryInterface) and resolvers (ResolverFactoryInterface).

  • [Dependency Injection] All class name parameters have been removed from the service definitions. Instead of overwriting the class name parameters to provide your own implementation, use service decoration.

  • [Data Transformer] The data transformer interface (\Liip\ImagineBundle\Imagine\Data\Transforme\TransformerInterface) was deprecated in version 1.x and has been removed.

  • [Templating] The imagine extension \Liip\ImagineBundle\Templating\ImagineExtension has been renamed to FilterExtension. Similarly, the template helper \Liip\ImagineBundle\Templating\Helper\ImagineHelper has been renamed to FilterHelper.

  • [Utility] The \Liip\ImagineBundle\Utility/Framework/SymfonyFramework::hasDefinitionSharing() method has been removed due to our higher Symfony requirements rending it unnecessary.

  • [General] The use of fully-qualified class name strings is no longer supported and the ::class compile-time class constant is now used.

  • [Enqueue] Enqueue's producer send() method has been deprecated and will be removed, use sendCommand() instead. When interacting with the producer to resolve images in the background you must make the following changes to your code:

    <?php
    
      // 1.0
      $producer->send(\Liip\ImagineBundle\Async\Topics::RESOLVE_CACHE /* ... */);
    
      // 2.0
      $producer->sendCommand(\Liip\ImagineBundle\Async\Commands::RESOLVE_CACHE /* ... */);