My extension is failing varnish test over and over again and the only visible error i have found in the error reports is
call_user_func(): Argument #1 ($callback) must be a valid callback,
class " \n FME\ProductsList\Setup\Patch\Data\EnableProductsList"
not found#0 /app/vend \n or/magento/framework/Setup/Patch/PatchRegistry.php(141):
call_user_func(Arr \n ay) \n #1 /app/vendor/magento/framework/Setup/Patch/PatchRegistry.php(207):
Magent \n o\Framework\Setup\Patch\PatchRegistry->getDependencies('FME\\ProductsLis... \n ')
Here is my code for Data Patch which seems to be fine
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
/**
* Created By : FME
*/
declare (strict_types = 1);
namespace FME\ProductsList\Setup\Patch\Data;
use Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\Patch\DataPatchInterface;
/**
* Class EnableProductsList for Create Custom Product Attribute using Data Patch.
*/
class EnableProductsList implements DataPatchInterface {
/**
* ModuleDataSetupInterface
*
* @var ModuleDataSetupInterface
*/
private $moduleDataSetup;
/**
* EavSetupFactory
*
* @var EavSetupFactory
*/
private $eavSetupFactory;
/**
* @param ModuleDataSetupInterface $moduleDataSetup
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(
ModuleDataSetupInterface $moduleDataSetup,
EavSetupFactory $eavSetupFactory
) {
$this->moduleDataSetup = $moduleDataSetup;
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
*/
public function apply() {
/** @var EavSetup $eavSetup */
$eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]);
$eavSetup->addAttribute('catalog_product', 'enable_productslist', [
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Enable Product Export',
'input' => 'boolean',
'class' => '',
'source' => \Magento\Catalog\Model\Product\Attribute\Source\Boolean::class,
'global' => ScopedAttributeInterface::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => false,
'default' => 0,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => '',
]);
}
/**
* {@inheritdoc}
*/
public static function getDependencies() {
return [];
}
/**
* {@inheritdoc}
*/
public function getAliases() {
return [];
}
}