forked from slimphp/Slim
-
Notifications
You must be signed in to change notification settings - Fork 0
Road Map
codeguy edited this page Sep 28, 2010
·
155 revisions
Created September 25, 2010
This is the official Slim framework roadmap working draft. This is a living document that may very well change in the future. Phase 1 will be completed first, followed by Phase 2 and Phase 3.
Slim is a RESTful micro web framework for PHP 5. I needed a way to create a simple PHP web service with minimum fuss. There are plenty of respectable PHP frameworks, but many of them are too robust for my needs. So I created Slim, a simple DSL for creating PHP web services.
- Remain light-weight, simple, and easy to use for both amateur programmers and professional programmers
- Always favor clean syntax and simple solutions instead of messy syntax and complex solutions
- Respect the 80/20 rule: satisfy 80% of common use cases rather than muddle the code-base for 20% of edge use cases
- Support PHP 5 and above
-
Write initial unit test coverage for primary Slim classesDone for now. The Slim, Request, and Response classes are still in flux. I will gradually achieve 100% coverage soon as these classes become stable Write Slim class loader- Establish Slim version numbering system
Migrate Slim documentation to the GitHub Wiki
- Add HTTP Caching (LastModified and ETag header support)
- Add redirect helper method... Slim::redirect( '/path' [, status] );
- Add pass helper method... Slim::pass();
- Add urlFor helper method... Slim::urlFor('route-name'); This is currently in the Router object, but will add to Slim as a helper to shorten necessary code.
- Instantiate default View in Slim::__construct so we can set individual View data before calling Slim::render().
- Improve Slim cookie management (send cookies with Response, not when set)
- Improve error reporting and exception handling. Add try/catch block to Slim::run() to catch exceptions and return 500 response.
- Filter GET and POST parameters automatically... see filter_input()
- Add
- Write example custom View classes for Twig, Smarty, Mustache, etc.
- Content Negotiation (prioritize resource extension; followed by HTTP Accept header preferences)
- Implement Slim::authenticate using strategy pattern (a strategy will return true, false, or NULL)
- Add Production and Development modes
- Add mode-specific application-wide settings
- Add user-agent condition to Routes
- Add application-wide route conditions