Ticket #661 (new enhancement)

Opened 11 months ago

Last modified 7 weeks ago

Implement a storage subsystem

Reported by: david Owned by: david
Priority: highest Milestone: 1.1
Component: storage Version:
Severity: blocker Keywords:
Cc: Patch attached: no

Description (last modified by david) (diff)

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!

Attachments

Change History

Changed 11 months ago by david

  • has_patch unset
  • description modified (diff)

Changed 10 months ago by impl

  • status changed from new to assigned

Changed 7 weeks ago by david

  • owner changed from impl to david
  • status changed from assigned to new

Changed 7 weeks ago by david

in a way, this is related to #748

Changed 7 weeks ago by david

mmh, I meant wiki:Cleanup/Storage of course

Add/Change #661 (Implement a storage subsystem)

Author



Action
as new
 
Note: See TracTickets for help on using tickets.