Developing software in the Real World

Run Slim 2 from the command line

If you need to run a Slim Framework 2 application from the command line then you need a separate script from your web-facing index.php. Let’s call it bin/run.php:

bin/run.php:

We set the script to be excutable and then we can then run it like this:


and the output is, as you would expect:

This works by converting the command line parameters into the URL path for Slim to route by imploding $argv with a ‘/’ separator. Slim needs an environment that looks vaguely web-like. This is quite easy to do via the Slim\Environment::mock() method which will set up all the array keys that the framework expects to have access to. It’s used for unit test, but also works really well here. All we need to do is set PATH_INFO to our previously created $pathInfo and Slim can now route.

We also need to stop Slim creating HTML errors, so we set our own closures for notFound and error and we’re done.

The rest of the file is simply setting up the routes we need and then calling run().