- Southampton, England
A Slim Skeleton
tldr: Built a Slim skeleton app. Fork it on GitHub.
Thought I'd give the Slim framework a whirl for a recent app. It's heavily inspired by Sinatra, which is a good thing. Like Sinatra, it doesn't impose any kind of structure on your code. Also a good thing, though it's still good practice to establish some order early in our app's lifecycle. With that in mind, I created a somewhat opinionated Slim skeleton app. It uses my own fork of the Slim framework, Twig for templating and Sass for stylesheets.
The structure looks like this:
|-app
|---views
|-----layout
|-public
|---css
|---img
|---js
|---sass
Key points:
- The
public
folder is where all publicly accessible files live - Routing is handled by
public/index.php
just as you would expect for a Slim application - The
bootstrap.php
takes care of includes and starting the session - View & layout templates live under
app/views
Slim & Rewrites
The fork of Slim allows you to use rewrites to route requests to a sub-folder whilst maintaining URLs that don't include the sub-folder's name. This method is supported by all of the other frameworks I've used. A little surprising then that Slim doesn't support this particular approach.
The app is set up so that we can point Apache at the root folder and with some .htaccess rewrites, all requests will be sent to the /public/ folder. I like this. It's useful when I'm deploying to an environment where the document root can't be changed or perhaps I'm looking to keep the web root as tidy as possible.
Twig
I like the Django template language and Twig is really similar. An easy choice really.
Sass
Sass is awesome. It's even better with Compass. The skeleton is ready to go with both.