Framework based on the Make your own Framework tutorial by Fabien Potencier.