laminas / laminas-feed

Consume and generate Atom and RSS feeds, and interact with Pubsubhubbub.
https://docs.laminas.dev/laminas-feed/
BSD 3-Clause "New" or "Revised" License
147 stars 26 forks source link

Change static interface to dynamic #12

Open weierophinney opened 4 years ago

weierophinney commented 4 years ago

I know it may be a bit too complicated due as part of migration to zf3. It makes sense to change static zend-feed interface to dynamic.

class Reader 
{
    public function __construct(HttpClient $http = null, CacheAdapter $cache = null)

    public function import()
    {
        $cache   = $this->getCache();
        $client  = $this->getHttpClient();
        $cacheId = 'Zend_Feed_Reader_' . md5($uri);
        ...
   }
}

It will break back comparability with version 2.*. But It's necessary changes if we want to have clear, easy management code that can be used in any application without global static variables.


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

weierophinney commented 4 years ago

Having done the work to separate the plugin manager and http dependencies, I can attest to the difficulties in testing the compliment currently; static usage makes this quite cumbersome!

If we're going to break BC anyway, I'd argue we should also target PSR-6 interfaces (particularly since with is being done to provide psr-6 compatibility in zend-cache). That particular change would affect also the pubsdubhubbub subcomponent, but not the writer.

to;dr: go for it!


Originally posted by @weierophinney at https://github.com/zendframework/zend-feed/issues/19#issuecomment-183312869

weierophinney commented 4 years ago

Thank you Matthew! I'll start migration.


Originally posted by @necromant2005 at https://github.com/zendframework/zend-feed/issues/19#issuecomment-183418735

weierophinney commented 4 years ago

Hi Matthew,

I've migrated Zend-Feed reader https://github.com/necromant2005/zend-feed/tree/BUG19-mirgration-static-tdynamic tests passed: https://travis-ci.org/necromant2005/zend-feed/builds/110578421

I can merge all changes in one commit, if you prefer.

Cheers,


Originally posted by @necromant2005 at https://github.com/zendframework/zend-feed/issues/19#issuecomment-186575157

weierophinney commented 4 years ago

Also it will be great to migrate "writter" because it uses the same weird static plugin manager functionality /* * @var ExtensionManagerInterface / protected static $extensionManager = null;


Originally posted by @necromant2005 at https://github.com/zendframework/zend-feed/issues/19#issuecomment-186577445

weierophinney commented 4 years ago

I've also migrated cache interface to PSR-6


Originally posted by @necromant2005 at https://github.com/zendframework/zend-feed/issues/19#issuecomment-187020827