src/Classes/LinkGenerator/ProductLinkGenerator.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Classes\LinkGenerator;
  3. use InvalidArgumentException;
  4. use Pimcore\Bundle\EcommerceFrameworkBundle\Model\ProductInterface;
  5. use Pimcore\Model\DataObject\ClassDefinition\LinkGeneratorInterface;
  6. use Pimcore\Model\DataObject\Concrete;
  7. use App\Classes\Tools\ForceInheritance;
  8. use App\Classes\Tools\Text;
  9. class ProductLinkGenerator extends AbstractProductLinkGenerator implements LinkGeneratorInterface
  10. {
  11.     public function generate(Concrete $object, array $params = []): string
  12.     {
  13.         if (!$object instanceof ProductInterface) {
  14.             throw new InvalidArgumentException('Given object is no Product');
  15.         }
  16.         return $this->doGenerate($object$params);
  17.     }
  18.     protected function doGenerate($object$params): string
  19.     {
  20.         $options array_merge(
  21.             $params,
  22.             [
  23.                 'name' => Text::toUrl($object->getOSName() ? $object->getOSName() : 'product'),
  24.                 'id' => $object->getId(),
  25.                 'division' => $object->getDivision(),
  26.             ]
  27.         );
  28.         return ForceInheritance::run(function () use ($object$options) {
  29.             return $this->pimcoreUrl->__invoke(
  30.                 $options,
  31.                 'product-single',
  32.                 true
  33.             );
  34.         });
  35.     }
  36. }