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
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions