Playing with Symfony

OK, here’s where I kinda “come out” as a true geek. Most of this will probably mean nothing to any of you and for that I make absolutely no apology whatsoever.

This whole post is a bit of a brag, but it’s writing up what’s been an intriguing afternoon/evening for me too.

I have a pretty strong background in Software Engineering, but I’m a bit behind with the times. I don’t really know much about how people go about developing applications these days. It’s something I’ve been meaning to get to grips with for a while. Today I’ve been playing a bit with Symfony – a PHP-based web development framework, with the aim of re-writing the database using a LAMP (Linux, Apache, MySQL, PHP) stack and Symfony. If you really care I’m using an installation of MoWes on a USB stick to keep this all portable so I can develop from work or home. Thanks must go to those on Twitter who have thrown some of these technologies my way.

Web-based applications seem to be the way of things at the moment (unless you’re doing hard-core coding for things like OS’s or embedded systems, which I’m not). And all the little projects I can either get my hands on, or dream up, are all web-apps that would benefit from a rapid-application development (RAD) type approach.

This has sort-of been happening a bit at work as I look after a database with a web-based front-end. This is currently written in PHP, outputting static HTML (i.e. no JavaScript) but when I wrote it I tried to:

  • abstract the database operations;
  • separate the data model and the presentation so that the code didn’t need to be updated when new fields got added, deleted, etc.;
  • create some generic code for those things that remained the same for all pages (cookies/authentication, standard menus, banners, etc).

It’s a bit clunky but it works well and the time spent coding the abstractions has saved me a lot of time with subsequent modifications.

So it was a surprise to find that most of what I’ve done, or tried to do, fits with the principles on which application frameworks are based (see the Fundamental Concepts section of the Symfony book I’m reading). The terminology is all a bit much to take in in one go, but essentially I was doing things right.

Or is it a surprise? My computing teachers were always keen to teach us good principles like abstraction, and I’ve always held that my fundamentals are good. So maybe it shouldn’t be a surprise.

That’s not to say that learning to use Symfony is quick and easy. I’m working my way through the tutorial, but without a lot of time it could easily leak from my head.

Possibly more techie posts like this to come as I learn more. Or maybe I’ll have rewritten the database before I get a chance to write again. That’ll depend on how good all this new technolgoy really is!