To create a well-designed and maintainable web application, it is often desireable to have a good framework with which to build upon. The aforementioned MVC design pattern is probably the most common architectural pattern used in web applications today. However, there is a lack of useful MVC frameworks for php5. As a result the goal of this project is to create a useable MVC framework that accomplishes several goals:
Many of the example MVC frameworks listed above do much more than simply providing a MVC implementation. Some of them also provide extensive functionality in other areas. Ruby on Rails, for example, is considered a 'full stack' MVC framework. It provides scripts for generating scaffolding and also utilizes object relational mapping techniques to easily implement CRUD (create, read, update, delete) operations on objects. Django also provides builtin functionality similar to rails. While this is not a bad thing, it may be the case that you prefer a framework that does as little as possible for you but helps you do it in an efficent and clean manner. SimpleFramework is designed to help you do just that.
The framework should also make very few assumptions about the computing environment it's in. As long as the server has php 5 and apache, it will work. The installation process is ment to be as painless as possible.
Convention over configuration is one of the strong points about the Ruby on Rails framework. Some frameworks mar you in the process of editing lines and lines of XML or other configuration files. While it is a good way to explicitly provide the application with the whats and hows of processing, often times establishing a few conventions can save time and complexity when it comes to configuration. The second part to that statement doesn't exclude configuration, rather puts convention ahead of it. You can still write your application's configuration in a file, but that will only be used after the conventions haven't been followed.
Boiler plate code is basically defined as the ammount of code you need to write/understand inorder to get the framework up and running. It is an important concern because the process of creating new application features/options could result in the same processes being repeated over and over. The overall goal is to mitigate the ammount of time an application developer is writing boiler plate code, giving that person more internal cpu (brain) cycles to think about the actual application itself.