vendor/vich/uploader-bundle/src/Twig/Extension/UploaderExtension.php line 61

Open in your IDE?
  1. <?php
  2. namespace Vich\UploaderBundle\Twig\Extension;
  3. use Twig\Extension\AbstractExtension;
  4. use Twig\TwigFunction;
  5. use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
  6. use Vich\UploaderBundle\Templating\Helper\UploaderHelperInterface;
  7. /**
  8.  * UploaderExtension.
  9.  *
  10.  * @author Dustin Dobervich <ddobervich@gmail.com>
  11.  */
  12. final class UploaderExtension extends AbstractExtension
  13. {
  14.     /**
  15.      * @var UploaderHelperInterface
  16.      */
  17.     private $helper;
  18.     public function __construct(UploaderHelperInterface $helper)
  19.     {
  20.         $this->helper $helper;
  21.     }
  22.     public function getFunctions(): array
  23.     {
  24.         return [
  25.             new TwigFunction('vich_uploader_asset', [$this'asset']),
  26.         ];
  27.     }
  28.     /**
  29.      * Gets the public path for the file associated with the uploadable object.
  30.      *
  31.      * @param object      $object    The object
  32.      * @param string|null $fieldName The field name
  33.      * @param string|null $className The object's class. Mandatory if $obj can't be used to determine it
  34.      *
  35.      * @return string|null The public path or null if file not stored
  36.      */
  37.     public function asset($object, ?string $fieldName null, ?string $className null): ?string
  38.     {
  39.         if (!$this->helper instanceof UploaderHelper) {
  40.             if (!\is_object($object)) {
  41.                 $msg 'Not passing an object option is deprecated and will be removed in version 2.';
  42.                 @\trigger_error($msg, \E_USER_DEPRECATED);
  43.             }
  44.             if (\func_num_args() > 2) {
  45.                 $msg 'Passing a classname is deprecated and will be removed in version 2.';
  46.                 @\trigger_error($msg, \E_USER_DEPRECATED);
  47.             }
  48.         }
  49.         if (null === $className) {
  50.             return $this->helper->asset($object$fieldName);
  51.         }
  52.         // @phpstan-ignore-next-line
  53.         return $this->helper->asset($object$fieldName$className);
  54.     }
  55. }