Isaac Newton
If I have seen further it is by standing on the shoulders of giants.

My first experience with PHP web application development framework can be tracked back to the year 2007 when I was in China and FleaPHP was the first framework I learned. I created several apps with it and became excited about Framework after that. Since its complex code base and poor documentation I never trully understood it. But I did learned some cool design ideas from it. Now its new name is QeePHP. This PHP framework inspired me to learn more of how to build a dynamic web application instead of just a simple website. During my learning, I read many books about PHP OOP, design patterns, database abstraction, and many other related PHP programming techniques.

With more and more design and development I found myself the need of a good structure to manage and maintain my web applications. I naturally gravitated towards what are supposed to be the greatest PHP frameworks available. However, their enormous footprints, slow loading times, complicated components coupling, poor documentation and huge learning curve quickly made me think twice about using them. Why not just write something myself, that does only what it needs to—and leave the heaps of needless code in the trash? A few months of careful thinking and learning from other well-known frameworks had led me to create my own Framework—I named it InfoPotato. The actual start date of this project was Auguest 1, 2009. It was first meant for private usage.

Design Evolution

For a long time, I thought InfoPotato should follow the MVC architectural pattern because many other web frameworks claim themselves MVC frameworks and at during that period I didn't have a clear understanding of what is MVC. But one day after lunch, I came accross a book called "Building PHP Applications with Symfony, CakePHP, and Zend Framework". In this book, the author memtioned that many so-called PHP MVC frameworks are not real MVC, and the truth is many of them are following the MVP architectural pattern. After that, I did more reading and I found my InfoPotato was more like MVP indeed. But with more research, I realized that I don't need a MVC framework for the PHP web development. Because that Model-View-Controller object relationships as they are conventionally known don't apply to the web in a meaningful way. What I really need is to look at a very simple request-response handling framework. So from that monment, I rewrote InfoPotato and got rid off the concept of either MVC or MVP. InfoPotato now, is only a simple web development framework built around HTTP and the principles of REST that handles request and response.

Philosophy

Like most web frameworks, InfoPotato is designed to ease the development of web applications by adding structure to the code and promoting a logical separation of application logic and presentation for the developer to write better, more readable, and more maintainable code. Unlike many other well-known PHP frameworks, InfoPotato has very low learning curve because it's very lightweight, simple and fast, and truly loosely coupled with high component singularity. InfoPotato wasn't designed to give you all the tools you will ever need, instead, it gives you a solid base of well-tested and most common libraries, and gives you the ability to easily add your own if you need to.

The founding principles of the InfoPotato Project were aimed at an audience that was looking for a simple yet powerful PHP framework to build a small or midium web application. The InfoPotato philosophy includes several guiding principles:

Credits

InfoPotato is influenced by many other PHP/Ruby/Java/Python frameworks/toolkits and incorporates many ideas and work from them. Below is a short list of those PHP frameworks from which InfoPotato drew inspiration. Some core code and libraries/functions of InfoPotato are built upon the following projects. Here's an incomplete list:

Page URI: http://www.infopotato.com/index.php/about/