This repository was archived by the owner on Jan 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 52
This repository was archived by the owner on Jan 29, 2020. It is now read-only.
Component split #93
Copy link
Copy link
Open
Description
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
froschdesign, sandrokeil, igorgolovanov, Moln, robertmarsal and 2 more