====== What is TinyMVC Framework? ====== TinyMVC is written in object PHP5, simple and lightweight framework which use [[http://en.wikipedia.org/wiki/Model-view-controller/|MVC]] (Model-View-Controller) architectural design pattern aproach to easy and fast PHP web application developement. It focused on easy implementation of MVC core elements (Front Controller, Action Controllers) and not covers as many aspects as most modern PHP frameworks does. Bear it in mind! If you're looking for comprehensive framework solution to help making a big and fancy PHP application, definitely TinyMVC isn't for you (You might consider [[http://framework.zend.com/|Zend Framework]] as one of the solution instead). ===== Why another PHP Framework? ===== Everytime I had to do some simple task in PHP I've been struggled with the same basic questions, such as: How to organize folder's structure, how to get database up and running and not **overcoplicate** everything. Usually I've just got some of my code written previously for "big and fat" commercial applications and threw away everything but piece of code I really needed at a time. However, it's still really anoying to do that everytime again and again, asking yourself what piece you really need and which don't. That's why I've grabbed together a bunch on classes I considered most essential for **common, simple PHP web application** and named it "TinyMVC Framework". Honestly, rather than //framework// it's just a simple //PHP project pattern// which helps to organize your application structure and stay "compatibile" with MVC design pattern. If you're PHP developer new in MVC world, you may find it usefull to learn how it's all about simply by analysing the code of TinyMVC classes, and you'll see that it's not a rocket science at all... really. ===== What is covered? ===== As metioned above, TinyMVC Framework covers just a few most essential aspects in PHP web coding, such as: * Front Controller - a single entry point for application, responsible for handling requests and launching apropriate Action Controller. * Action Controller - abstract action controller class which helps to build your own module action handlers. * Exception handling - helps to manage error handling in application, giving all essentail data when exception occurs (eg. stack trace). * Database access - singleton Database class, and simple example of MySQL driver and DAO class. All you need to make your "model" part of application. * View Renderer - simple class to helps working with "view" part of MVC pattern using just PHP as a template language. * Configuration handling - with Registry singleton you can manage all kind of configuration in easy and convenient way * HTTP Request access - singleton HttpRequest class unify the way you can access request parameters (GET and POST params, sessions, cookies) \\ And that's it! No caching mechanisms, filters, dispatchers, ACLs, controlls, widgets etc. Just few things ***really*** essential with no hassle. See [[wiki:documentation|Documentation Page]] for more information about all framework elements. ===== How can I get it? ===== See [[wiki:Download|Download Page]] for more details about downloading and isntalling TinyMVC Framework. ===== Roadmap ===== Ehm, well... what next? ;-) Obviously I'm not going to implement more new features into TinyMVC Framework, because it would make it just like another PHP framework on the market, and it's not the point. However, there are some areas where it might be improved a bit or become even more flexible than it's now. here is a list of issues I consider worth of working on in the future: * "Friendly URLs" support * DAO class improvement, maybe by implementing simple [[http://en.wikipedia.org/wiki/Object-relational_mapping|ORM]] (Object Relational Mapping) solution * A bit more abstract approach in Front Controller resolving and calling module controller mechanism * HTML Form manipulation support (well... [[http://www.w3.org/MarkUp/Forms/ |xforms]] maybe? ...volunteers?) ===== About the Author ==== I'm professional software developer with many years of experience in developing all kind of PHP applications, from simple web pages to complex, commercial projects. [[http://www.linkedin.com/in/adrianwieczorek|{{wiki:btn_viewmy_160x25.gif}}]]