Roadmap
This is a very living document. Here, we collect our ideas for which direction to proceed in. Join the conversation at http://github.com/spider/spider
v0.3 Basic CRUD Query Builder
- A DriverInterface Contract and abstract for creating drivers
- A basic, fluent CommandBuilder that performs CRUD operations, but does not handle traversals or relationships (those come in 0.4)
- Predictable and versatile response formats.
- Fully documented, both at code-level and in guides at http://spider-ogm.readthedocs.org/
- Transaction support
- Testing and Documentation foundations
v0.4 Traversal Query Builder
- A Command Builder that handles relationships, complex queries, and traversals.
- Nested queries, trees, and paths
- A solution for the n+1 problem (building a query that fetches a post with all its comments in one query).
- A top-level
Spider
object for global configuration
v0.5 Schema Builder
- Database agnostic schema builder.
- Data migrations and seeding, final fixtures.
- Include sample graphs.
- Extensible for specific datastores.
- Rebuild documentation.
- System wide ioc container for events, logging, caching, etc.
v0.6 GraphModels and OGM
- Inspired by Eloquent and Propel
- Allow for saved queries that may be saved and reused as templates
- Allow for:
- explicit models
User::all()
(new User([]))->save()
- or dynamic models
$spider->makeModel('label')
- or generic models
Spider\Models\Generic('label')
- explicit models
- Protects against Mass Assignment
- Accessors and mutators
- Smart hydration
0.7 Security and Production Features
- Data-binding and injection.
- Session support.
- SSL support
- Solid bug-scrub.
- First production ready release
v0.8 Profiling and Scaling
- Multiple connections, load balancing, distributing.
- Query profiling
Beyond and Misc
- Allow for extensions to give the spider new functionality.
- Be able to integrate third-party loggers, profilers, and caching (foundation laid in 0.5)