Symfony and Doctrine for Rapid Prototyping

development_12

We often need to build a functional prototype to demonstrate a new product idea. Developers often have mixed feelings about this process. Developers love to start a project from scratch because there is no legacy code to deal with. The freedom that typically comes with prototyping to make technical decisions makes it an exciting part of the process in many situations.

Developers who write software usually have no problem with visualizing how a software application will look and feel based only on a discussion of its functions or reading a spec document. But clients and managers usually don’t have this same visualization. For them, the only way to know what they’re going to have as an end product, is to build it, and then test it out. A prototype or preliminary model provides them with something they can use to further imagine how the end product will look/function without full development. However, building this type of prototype can also be viewed as a time sink. In all actuality this prototype can save money by preventing any organization from doing all out development on an idea that may not fit their plan.

Prototyping, starts with a basic idea for a new application. You want to build that app quickly, with the smallest amount of functionality you can get away with. You only want to do enough so that the “idea people” can see their ideas in action.

When prototyping web applications, my preferred technology stack is a LAMP server running Symfony and using Doctrine. I like this setup because it is relatively quick to set up. It is also a system well-suited for programming your app quickly. Then, if your prototyping project morphs into a project you intend to ship to customers – it is a great stack for that as well.

All web application projects have entities, database queries, and database tables.  These aspects of the project are what I call “undifferentiated overhead” – the things you have to do every time.  Doctrine uses an interactive questionnaire and simple configuration files to handle this undifferentiated overhead for you quickly, so you can spend more time on differentiated features of your app – which are the things your customer actually cares about.

Symfony documentation is well written and organized. Listed below are the basic steps of prototype using Symfony:

  • Install Symfony
  • Create your entities
  • Set up controllers and routing
  • Template with Twig
  • Access your App

Contact Artemis Consulting Inc. to learn about how we can create prototypes for your next project.