Could not load extension: GooglePlayPodcast using Plugin Loader #80
Comments
Re-opening; the intention was to have these entries in place. We'll issue a bugfix release soon that ensures they are present. |
Thanks, glad it wasn't just me! |
Hmmm... I thought this had to do with our own We do register it already (see zend-feed/src/Reader/StandaloneExtensionManager.php Lines 24 to 25 in 875414e
zend-feed/src/Reader/ExtensionPluginManager.php Lines 106 to 107 in 875414e
The problem is the fact that we register it as a core extension by default in zend-feed/src/Reader/Reader.php Line 675 in 875414e
I'm going to see if I can add some code that will detect the presence of the required entries before attempting to register them. My personal take is that this should likely emit an |
OK. I'd really like to do without an extension manager if possible. I have one extension that adds MRSS media support, and I gather I need to have a custom extension manager that loads all the standard extensions in order to load that extra one. Is that correct? "All I want is" a class that will return a sensible RSS structure when given a URL and not explode when it encounters something unusual; I'm finding the mix of managers, extensions, and containers very confusing, especially since I'm not using ZF otherwise. |
Custom implementations of `ExtensionManagerInterface` may not have _new core_ extensions present. As a result, when upgrading, an exception is thrown due to inability to load the new extension. This was discovered with the 2.10 release, when we added a new core extension, GooglePlayPodcast; see zendframework#80 and https://www.drupal.org/project/drupal/issues/2976335 for more details. As such, we now check for _new_ core extensions before registering them. When we discover they are not in the extension manager, we emit an `E_USER_NOTICE` indicating the user should update their `ExtensionManagerInterface` implementation to add entries for the new extension, but then continue on without registering the extension. This ensures no exception is thrown.
Correct. We provide a "standalone" extension manager that has the various defaults we allow already, and this always has all core extensions represented. It also has a mechanism by which you can add extensions once you have an instance: use Zend\Feed\Reader\Reader;
use Zend\Feed\Reader\StandaloneExtensionManager;
$extensions = new StandaloneExtensionManager();
// Register custom feed and entry classes with the manager:
$extensions->add('MRSS\Feed', \My\Feed\MRSS\Feed::class);
$extensions->add('MRSS\Entry', \My\Feed\MRSS\Entry::class);
// Tell Reader to use the custom extension manager:
Reader::setExtensionManager($extensions);
// Register the MRSS extension with the reader (which we can
// now do as the extension manager knows about the feed and entry
// types:
Reader::registerExtension('MRSS'); You cannot currently extend the class to auto-provide your extension, as the class uses
What it comes down to is:
Hope the above helps you out! I've also opened #81 to make the |
Custom implementations of `ExtensionManagerInterface` may not have _new core_ extensions present. As a result, when upgrading, an exception is thrown due to inability to load the new extension. This was discovered with the 2.10 release, when we added a new core extension, GooglePlayPodcast; see zendframework#80 and https://www.drupal.org/project/drupal/issues/2976335 for more details. As such, we now check for _new_ core extensions before registering them. When we discover they are not in the extension manager, we emit an `E_USER_NOTICE` indicating the user should update their `ExtensionManagerInterface` implementation to add entries for the new extension, but then continue on without registering the extension. This ensures no exception is thrown.
Excellent, thanks. |
Custom implementations of `ExtensionManagerInterface` may not have _new core_ extensions present. As a result, when upgrading, an exception is thrown due to inability to load the new extension. This was discovered with the 2.10 release, when we added a new core extension, GooglePlayPodcast; see zendframework#80 and https://www.drupal.org/project/drupal/issues/2976335 for more details. As such, we now check for _new_ core extensions before registering them. When we discover they are not in the extension manager, we emit an `E_USER_NOTICE` indicating the user should update their `ExtensionManagerInterface` implementation to add entries for the new extension, but then continue on without registering the extension. This ensures no exception is thrown.
2.10.2 has been released, which resolves this problem for existing users. |
This is a little note for anyone running into this error. You will need to add the new GooglePlayPodcast extensions to your extension manager so that the extension can be found, like this:
I have no idea why these need to be added explicitly since it seems it won't work without them. I saw that Drupal ran into the same thing.
The text was updated successfully, but these errors were encountered: