User Tools

Site Tools


backend:symfonyliip

Symfony : liip/imagine-bundle

Installation

composer require liip/imagine-bundle

imagick

Je ne sais pas comment l'installer en production

On peut régler le problème des grandes images avec gd en mettant dans le fichier php.ini :

memory_limit = -1

On peut utiliser imagick à la place de gd (utilisé par défaut) mais il est dur à configurer, il faut le configurer dans le fichier config\packages\liip_imagine.yaml.

Installation

Il faut d'abord installer PEAR (PHP Extension and Application Repository) qui est une collection de bibliothèques PHP. C'est aussi une application qui permet de gérer les bibliothèques (installer ou mettre à jour une bibliothèque).

Il faut faire Enregistrer sous…, et enregistrer le fichier go-pear.phar dans le répertoire de PHP. Puis lancer php go-pear.phar avec les droits administrateur.

Cela installera PECL (PHP Extension Community Library) qui est un dépôt dont les modules peuvent être installés par le gestionnaire de paquets PEAR, dont il s'est séparé en octobre 2003. La différence est que ses modules sont écrits en langage C, et compilés à l'intention de PHP.

Puis on pourra installer imagick :

  • Vérifier avec phpinfo() :
    • Architecture x32 ou x64
    • Thread Safety : enabled ou non, cela correspond à Thread Safe ou Non Thread Safe sur le site de pecl
  • Télécharger la DLL correspondant à la bonne version de PHP
  • Décompresser le fichier téléchargé
  • Copier le fichier php_imagick.dll dans le répertoire ext du répertoire de PHP.
  • Copier tous les autres fichiers dans un répertoire, par exemple C:\imagick
  • Copier tous les fichiers dll de ce répertoire dans le répertoire apache/bin
  • Ajouter ce répertoire au PATH de Windows après le PATH du répertoire de PHP dans les variables d'environnement
  • Ajouter dans le fichier php.ini :
    extension=php_imagick.dll
  • Si nécessaire, redémarrer le serveur

Voir la procédure : Install Imagick for php on Windows

Configuration

liip_imagine:
  # valid drivers options include "gd" or "gmagick" or "imagick"
  driver: "imagick"

Configuration

Il faut gérer la configuration dans le fichier config\packages\liip_imagine.yaml :

liip_imagine:
    filter_sets:

        # name our filter set "my_fixed_filter"
        my_fixed_filter:
            filters:

                # use and setup the "fixed" filter
                fixed:

                    # set the fixed size to "120x90" pixels
                    width: 120
                    height: 90

Autre exemple :

liip_imagine:
    filter_sets:

        # name our filter set "my_thumb_filter"
        my_thumb_filter:
            filters:

                # use and setup the "thumbnail" filter
                thumbnail:

                    # set the thumbnail size to "32x32" pixels
                    size: [32, 32]
 
                    # crop the input image, if required
                    mode: outbound

Un dernier exemplec

liip_imagine:

  filter_sets:
    squared_thumbnail_medium:
      filters:
        thumbnail:
          size: [300, 300]
          mode: outbound
          allow_upscale: true

    squared_thumbnail_small:
      filters:
        thumbnail:
          size: [200, 200]
          mode: outbound
          allow_upscale: true

Utilisation

On utilise le paramètre imagine_pattern dans le formulaire src\Form\PinType.php :

$builder
  ->add('imageFile', VichImageType::class, [
    'label' => 'Image (JPG or PNG file)',
    'required' => false,
    'allow_delete' => true,
    'download_uri' => false,
    'constraints' => $imageFileConstraints,
    'imagine_pattern' => 'squared_thumbnail_small'
  ])
  ->add('title')
  ->add('description');
backend/symfonyliip.txt · Last modified: 2020/09/18 12:51 (external edit)