I have a theme I purchased from ThemeForest, but they are not being helpful (they don't understand english much!)

My question in terms of **loading Classes are based on the following:**

```
<?php
/** @var $block \Magento\Catalog\Block\Product\Image */
/** @var $escaper \Magento\Framework\Escaper */
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
/**
 * Enable lazy loading for images with borders and if variable enable_lazy_loading_for_images_w>
 * is enabled in view.xml. Otherwise small size images without borders may be distorted. So max>
 * to prevent stretching and lazy loading does not work.
 */
$borders = (bool)$block->getVar('product_image_white_borders', 'Magento_Catalog');

```

The 'commented' `@var syntax` as inside there, is Magento 2 supposed to 'autoload' those class definitions/files?

This is the error:

```
Exception #0 (Exception): Notice: Undefined variable: escaper in 
/var/www/html/app/design/frontend/Sm/market/Magento_Catalog/templates/product/image_with_borders.phtml on line 35

```

Line 35:

```
<img class="<?= $escaper->escapeHtmlAttr($block->getClass()) ?>

```

I am trying to figure out why they used 'commented `@var` entries', and why `Escaper` is undefined.  

*Interestingly, `$block` as image does not fail* a few lines upwards: (line 15)

```
$block->getVar('product_image_white_borders', 'Magento_Catalog');`

```

It feels more like `Magento\Framework` is not loaded, I see no module `Magento_Framework` for instance. NOTE: *I assume Framework is loaded differently by Magento 2, but I can't verify if it working or not!*

This must be something not loaded, because they use `@var` definitions in alot of their templates.

### Extra info

I have already run

```
bin/magento setup:upgrade && \
bin/magento setup:static-content:deploy -f en_GB en_US && bin/magento setup:di:compile

```

Please assist, Thanks!