laminas-feed icon indicating copy to clipboard operation
laminas-feed copied to clipboard

Documentation section bloc Extensions for writers is empty

Open weierophinney opened this issue 5 years ago • 1 comments

After updating zend-feed to v2.10.3, it seems that the setInvokableClass to add personnal writer has changed. Giving the following error :

Method by name of setInvokableClass does not exist in Zend\Feed\Writer\ExtensionManager

I tried to find more information into your doc, but the bloc is empty with a TODOmention.

Code to reproduce the issue

extensions = Writer::getExtensionManager();
$extensions->setInvokableClass('MyEntryName','PathToMyEntryClass');
Writer::registerExtension('MyExtensionName');

Expected results

My extension well registered. And the section doc completed.

Actual results

Method by name of setInvokableClass does not exist in Zend\Feed\Writer\ExtensionManager

Originally posted by @gbouyge at https://github.com/zendframework/zend-feed/issues/86

weierophinney avatar Dec 31 '19 21:12 weierophinney

@gbouyge

After updating zend-feed to v2.10.3, it seems that the setInvokableClass to add personnal writer has changed.

This method has been gone since version 2.6.0.

You can use the following:

/** @var \Zend\Feed\Reader\StandaloneExtensionManager $extensionManager */
$extensionManager = \Zend\Feed\Writer\Writer::getExtensionManager();
$extensionManager->add('My\Entry', \My\Entry::class);
\Zend\Feed\Writer\Writer::registerExtension('My');

var_dump($extensionManager->has('My\Entry')); // true
var_dump(\Zend\Feed\Writer\Writer::getExtensions()['entry']); // array {0 => 'My\Entry'}

or use the class names:

$extensionManager->add(\My\Entry::class, \My\Entry::class);
var_dump($extensionManager->has(\My\Entry::class)); // true

Originally posted by @froschdesign at https://github.com/zendframework/zend-feed/issues/86#issuecomment-411168697

weierophinney avatar Dec 31 '19 21:12 weierophinney