A RESTful micro framework for PHP 5 inspired by Sinatra
Pull request Compare This branch is 2611 commits behind slimphp:3.x.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Slim Framework for PHP 5

Thank you for choosing the Slim Framework, a micro-framework for PHP 5 inspired by Sinatra.


The Slim Framework for PHP 5 provides the following notable features out-of-the-box:

  • Clean and simple DSL for writing powerful web applications
  • RESTful HTTP routes (GET, POST, PUT, DELETE)
    • Named routes w/ urlFor() helper
    • Route passing
    • Route redirects
    • Route halting
    • Custom Not Found handler
    • Custom Error handler
    • Optional route segments... /archive(/:year(/:month(/:day)))
  • Easy app configuration
  • Easy templating with custom Views (ie. Twig, Smarty, Mustache, ...)
  • Secure sessions
  • Signed cookies with AES-256 encryption
  • Flash messaging
  • HTTP caching (ETag and Last-Modified)
  • Logging
  • Error handling
  • Supports PHP 5+

"Hello World" application (PHP 5 >= 5.3)

The Slim Framework for PHP 5 supports anonymous functions. This is the preferred method of defining Slim application routes.

require 'Slim/Slim.php';
Slim::get('/hello/:name', function ($name) {
    echo "Hello, $name!";

"Hello World" application (PHP 5 < 5.3)

If you are running PHP 5 < 5.3, the second Slim::get parameter will be the name of a callable function instead of an anonymous function.

require 'Slim/Slim.php';
Slim::get('/hello/:name', 'hello');
function hello($name) {
    echo "Hello, $name!";

Get Started

Install Slim

Download the Slim Framework for PHP 5 and unzip the downloaded file into your virtual host's public directory. Slim will work in a sub-directory, too.

Setup .htaccess

Ensure the .htaccess and index.php files are in the same public-accessible directory. The .htaccess file should contain this code:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

Build Your Application

Your Slim application will be defined in index.php. First, require the Slim Framework:

require 'Slim/Slim.php';

Next, initialize the Slim application:


Next, define your application's routes:

Slim::get('/hello/:name', function ($name) {
	echo "Hello $name";

Finally, run your Slim application:


For more information about building an application with the Slim Framework, refer to the official documentation.

About the Author

Slim is created and maintained by Josh Lockhart, a web developer by day at New Media Campaigns, and a hacker by night.

Slim is in active development, and test coverage is continually improving.

Links and Resources

For the most up-to-date information and news, follow the Slim PHP 5 micro framework on Twitter:


Additional resources (ie. custom Views and plugins) are available online in a separate repository so this primary repository remains as light-weight as possible.


Other helpful links:

Open Source License

Slim is released under the MIT public license.