Magento 2.4 – TemplateTypesInterface Deprecated Interface

magento2magento2.4PHP

Impossible to process constructor argument Parameter #3 [

Magento 2 TemplateTypesInterface deprecated interface: The deprecated interface will be removed in upcoming versions. Consider using an interface or class marked as api instead.

<?php
namespace Vendor\Module\Model;
use Magento\Framework\App\TemplateTypesInterface;
use Magento\Framework\Setup\Patch\DataPatchInterface;
use Magento\Framework\Setup\Patch\PatchRevertableInterface;

class InstallerBase implements DataPatchInterface, PatchRevertableInterface
{
...

    public function __construct(
        ...
    ) {
        ...
    }

    public function save($subjectHTML)
    {

        $template->load($templateName, 'template_code');
        $template->setTemplateSubject($subjectHTML)
               ...
                ->setTemplateType(TemplateTypesInterface::TYPE_HTML);

        return $template->save();
    }

Best Answer

Alternative solution:

Delete: use Magento\Framework\App\TemplateTypesInterface;

Change TemplateTypesInterface::TYPE_HTML to self::TYPE_HTML


  <?php
    declare(strict_types=1);
    namespace Vendor\Module\Model;
    use Magento\Framework\Setup\Patch\DataPatchInterface;
    use Magento\Framework\Setup\Patch\PatchRevertableInterface;

    class InstallerBase implements DataPatchInterface, PatchRevertableInterface
    {
    ...
    
        public function __construct(
            ...
        ) {
            ...
        }
    
        public function save($subjectHTML)
        {
    
            $template->load($templateName, 'template_code');
            $template->setTemplateSubject($subjectHTML)
                   ...
                    ->setTemplateType(self::TYPE_HTML);
    
            return $template->save();
        }
Related Topic