#661: Implement a storage subsystem
-------------------------+--------------------------------------------------
 Reporter:  david        |        Owner:  impl
     Type:  enhancement  |       Status:  new 
 Priority:  highest      |    Milestone:  1.1 
Component:  storage      |      Version:      
 Severity:  blocker      |   Resolution:      
 Keywords:               |    Has_patch:  0   
-------------------------+--------------------------------------------------
Changes (by david):

  * has_patch:  => 0

Old description:

> With a storage manager, jolly flexible, with chained storages (e.g. read
> from memcache first, then, on failure, from database, but always write to
> both), lots of drivers, and some smart way to integrate the "session"
> storage ({{{AgaviMemcacheStorage}}} ... {{{AgaviMemcacheSessionStorage}}}
> ... {{{AgaviSessionStorage}}} ... fail!), maybe through moving the
> session read/write/blah into the user, which then uses a storage or such?
> And make it BC via {{{AgaviContext::getStorage()}}}. Good candidate for
> GSoC!

New description:

 Right now, Storage is only used for sessions. That is, of course, lame. We
 want something general-purpose that can be used in app code, for caching,
 and so on.

 With a storage manager, much like the current database manager.

 With chained storages (e.g. read from memcache first, then, on failure,
 from database, but always write to both), lots of drivers

 Of course, we need to maintain BC and therefor some smart way to integrate
 the "session" storage ({{{AgaviMemcacheStorage}}} ...
 {{{AgaviMemcacheSessionStorage}}} ... {{{AgaviSessionStorage}}} ...
 fail!), maybe through moving the session read/write/blah into the user,
 which then uses a storage or such?

 BC could be implemented via the {{{factories.xml}}} config handler,
 because that new feature would, of course, have
 {{{http://agavi.org/agavi/1.1/config}}} as the namespace! So for a 1.0 NS,
 it transparently creates a storage manager with just one session storage,
 and for 1.1, it requires a {{{<storage_manager>}}} tag be there (that
 would then need a separate {{{storages.xml}}}). And in the case,
 {{{AgaviContext::getStorage()}}} returns the session storage as it is now.
 Only really difficult question seems to be this session storage
 integration in case multiple implementations exist. Maybe a storage
 decorator or so? :)

 Anyway, sounds like a really good candidate for GSoC!

-- 
Ticket URL: <http://trac.agavi.org/ticket/661#comment:1>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5


_______________________________________________
Agavi Tickets Mailing List
[email protected]
http://lists.agavi.org/mailman/listinfo/tickets

Reply via email to