Apr 27, 2008

A Key Enabler of anyInput: The Symfony Framework

In Fall of 2007, I decided it was time to stop wasting my time on the job and try to develop a product that might be useful to people. The product would be called anyInput, free online data collection. As a requirement, the product needed to use free technologies, the LAMP Stack (Linux, Apache, MySQL, PHP).

My first attempt at developing anyInput (data collection) was to take some free open source software and modify it to suit my needs. I thought modifying someone else’s code would be easy; In actuality it was very difficult. Basically, the code was unstructured and illogical. The HTML and MySQL queries were embedded with the PHP business logic. If you wanted to change the way particular page looked, then you would have to drill deep down into the files and separate the HTML and MySQL queries from the business logic. This was a terrible and time consuming experience that resulted in little progress.

Then I discovered the concept of “framework.” When I was scouring the web for free development tools for anyInput (online data collection), I browsed across the Symfony Framework. I dismissed Symfony because:

  1. I did not know what a framework was

  2. Symfony would probably be too tedious to learn

It turns out that I was very wrong! Frameworks can be defined in many ways. I define a framework as:

  1. a structured methodology for developing code (MVC model)

  2. a tool that has many commonly used web programming constructs already defined

After I got feed up with trying to modify open source PHP code, I decided to revisit the Symfony Framework. They have great documentation and a great tutorial about creating Askeet, a Yahoo Answers type of site. A few days into the tutorial, I decided that Symfony would be used as the framework for creating anyInput from scratch – free online data collection. More on the Symfony Framework and its capabilities later.

No comments: