By megachriz on
Change record status:
Published (View all published change records)
Project:
Introduced in branch:
8.x-3.x
Introduced in version:
8.x-3.3
Issue links:
Description:
The \Drupal\feeds\Plugin\Type\ExternalPluginFormInterface interface has been deprecated and will be removed in feeds:4.0.0. Feeds has only every used this interface in the pre-alpha stage and for a long time now this interface has no purpose. But documentation in the code still suggested to use it.
Impact:
Form classes for Feeds plugins (fetcher, parser, processor) that implement ExternalPluginFormInterface will need to be updated.
Actions required:
- Form classes should implement \Drupal\Core\Plugin\PluginFormInterface instead of ExternalPluginFormInterface.
- For dependency injection, form classes should implement \Drupal\Core\DependencyInjection\ContainerInjectionInterface with a
create()method that takes only ContainerInterface as a parameter. - The plugin will be set via
\Drupal\feeds\Plugin\PluginAwareInterface::setPlugin()if that interface is implemented.
Example migration:
Before:
use Drupal\feeds\Plugin\Type\ExternalPluginFormInterface;
class MyForm implements ExternalPluginFormInterface {
public static function create(ContainerInterface $container, FeedsPluginInterface $plugin) {
return new static();
}
}
After:
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Plugin\PluginFormInterface;
use Drupal\feeds\Plugin\PluginAwareInterface;
class MyForm implements PluginFormInterface, ContainerInjectionInterface, PluginAwareInterface {
protected $plugin;
public static function create(ContainerInterface $container) {
return new static();
}
public function setPlugin(FeedsPluginInterface $plugin) {
$this->plugin = $plugin;
}
}
Impacts:
Module developers