Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

Component split #93

@marc-mabe

Description

@marc-mabe

I would like to get your opinions about splitting zend-cache into different components.
The reason for that is simply a testing and dependency hell.

  • It's not possible to define a required extension in composer.json so all adapters have to manually check if the current environment is matching the requirements
  • Testing against all adapters is a nightmare and takes very long.
    • The travis.yml file al already very complex but it still doesn't test all common cases.
    • Some extensions are missing or not 100% compatible for PHP-7 which makes things here more complicated.
    • Doesn't test against different (most common) extension versions
    • Nearly impossible to run tests for ZendServer adapters
  • another reason is that normally you only need 1 or 2 adapters but that's not very important as zend-cache doesn't install so many files per adapter.

In my opinion it makes sense to split parts into it's own repository as long as the part requires a non standard extension or another currently optional dependency.

Thoughts ?

This is a structure how this could look like:

zendframework/zend-cache

  • Exceptions
  • Patterns
  • Service
  • Factories
  • Storage Interfaces
  • Storage Plugins
    • all except the Serializer plugin
  • Storage Adapters
    • BlackHole
    • Filesystem
    • Memory

zendframework/zend-cache-serializer

  • adds the serializer storage plugin which requires zend-serializer

zendframework/zend-cache-apc

  • adds the Apc storage adapter requires the apc extension (or compatible extension)

zendframework/zend-cache-apcu

  • adds the Apcu storage adapter requires the apcu extension

zendframework/zend-cache-dba

  • adds the Dba storage adapter requires the dba extension

zendframework/zend-cache-memcache

  • adds the Memcache storage adapter requires the memcache extension

zendframework/zend-cache-memcached

  • adds the Memcached storage adapter requires the memcached extension

zendframework/zend-cache-mongo

  • adds the Mongo storage adapter requires the mongo extension
  • It's currently the MongoDb adapter but there is also another extension called mongodb

zendframework/zend-cache-redis

  • adds the Redis storage adapter requires the redis extension

zendframework/zend-cache-session

  • adds the Session storage adapter requires the zend-session

zendframework/zend-cache-wincache

  • adds the WinCache storage adapter requires the wincache extension

zendframework/zend-cache-xcache

  • adds the XCache storage adapter requires the xcache extension

zendframework/zend-cache-zendserver

  • adds the ZendDataCacheDisk and ZendDataCacheShm storage adapter requires the zend data cache extension
  • This is currently called ZendServerDisk / ZendServerShm because the extension is part of Zend Server

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions