Skip to content
codeguy edited this page Jul 23, 2011 · 155 revisions

Road Map

Created September 25, 2010
Updated July 22, 2011

This is the official Slim framework roadmap working draft. This is a living document that may very well change in the future.

What are Slim's goals?

  1. Remain light-weight, simple, and easy to use for both amateur programmers and professional programmers
  2. Always favor clean syntax and simple solutions instead of messy syntax and complex solutions
  3. Respect the 80/20 rule: satisfy 80% of common use cases rather than muddle the code-base for 20% of edge use cases
  4. Support PHP 5 and above

Git Workflow

Slim uses the same Git workflow as described at http://nvie.com/posts/a-successful-git-branching-model/. The master branch will always represent the latest production-ready point release. The develop branch will contain the latest features pending the next point release; the develop branch is not guaranteed to be stable, but it will more than likely work since new features are developed locally on separate Git branches and only merged into the develop branch when thought to be stable.

Features Under Consideration

These are not assigned to a specific version, but they will likely be included sometime in the future. These are not assigned to a specific upcoming version release because they are under active discussion to determine the best approach for implementation. Do not submit pull requests for these features until you have discussed implementation plans with Josh Lockhart (the project creator/maintainer).

Version 1.7.x (Upcoming)

  • Add conneg capability to Slim_View... delegate implementation to subclasses

Version 1.6.x (Upcoming)

  • Mime-type handling
  • Parse GET, POST, PUT params for JSON, XML, ... requests
  • Parse Accepts: header; pass selected response content-type to View

Version 1.5.x (Upcoming)

  • Accept-Encoding: gzip, deflate support
  • Enable OPTIONS routes
  • Various bug fixes

Version 1.5.0 (Upcoming, currently available in development branch)

  • Convert Slim to instance model rather than a Singleton model. This affects:
    • App initialization
    • Logging
    • Isolated Error and Exception handlers
  • Application names
  • Improved unit test coverage

Version 1.3 (Released March 26, 2011)

  • Sessions
    • CookieStore session handler (signed; encrypted if mcrypt available)
    • Flash messaging
  • Application modes & configuration
  • Improved Hook and Filter system
  • Route middleware
  • Restructure unit tests
  • Move custom views to separate repository

Upgrade Notes

Upgrading from 1.2 to 1.3 should be a straight-forward process. Just replace your Slim/ directory with the latest version. The only potential gotchas you should watch out for are:

Sessions

PHP $_SESSION data is now stored in signed, encrypted Cookies using Slim's own Session handler. If your $_SESSION data will be larger than 4Kb, you should revert to PHP's default Session handler like this:

Slim::init(array(
    'session.handler' => null
));

Sessions are started automatically by Slim. You do not need to call session_start(). Session IDs are regenerated on each request for additional security Removed due to issues with many simultaneous AJAX or asset requests.

Application Hooks and Filters

To invoke a hook in 1.3 (unlike prior versions), you now call Slim::applyHook('name.of.hook'). Assigning callables to a hook remains the same with Slim::hook('name.of.hook', $callable).

Custom Views

To keep the core repository as light-weight as possible, all custom Views have moved to a separate repository at:

https://github.com/codeguy/Slim-Extras

Version 1.2 (Released March 5, 2011)

This release marks the most important changes to-date within the Slim PHP 5 micro framework. All class names are updated so that Slim can use the industry-standard class autoloader (see link below). The class names in this release are final and will not be changed again in the future.

  • REST improvements
    • Improved Request class
    • Abstract URI parsing and handling from Request
  • New class auto loader (see here)
  • Work with or without web server URL rewriting

Version 1.1 (Released January 16, 2011)

  • Full inline documentation review
  • New default template for fresh application install
  • Convert to 4-space indents instead of using TABs
  • Support HTTP HEAD requests
  • New, extensible application logging
  • View interface updates
  • Plugin hook architecture
  • Application-wide route conditions
  • Optional route segments with default values

Version 1.0 (Released November 2, 2010)

  • Initial test coverage for primary classes
  • Slim class loader
  • Establish version numbering system
  • Move Getting Started and Documentation to GitHub Wiki
  • HTTP caching (ETag and LastModified)
  • Cookie management
  • Route redirects
  • Route passing
  • Route naming and urlFor helper
  • Instantiate View in Slim::init()
  • Improve Exception and Error handling
  • Add "Contributing to Slim" Wiki page with expectations, style guidelines, etc.
  • Write example custom View classes for Twig, Smarty, Mustache, etc.
  • Add Slim app settings
  • Add Slim app logging
  • Improve test coverage for Request and Response
  • Ensure inline documentation for Slim classes is complete

Clone this wiki locally