Right now, I'm working on a music player type application for a client. I've been messing around with the idea of how to go about doing the project. Sure I can make a quick application to get the job done -- but I want to take this opportunity to do it right. I know I want to implement an MVC framework and have been looking around for what people usually go for these days -- MVC in the backend or front end. After doing some looking around, I decided I'm going to stick to my guns and go with a Javascript based MVC. But then I decided to take it one step further. Now usually until this moment, I've used a makeshift approach to doing RESTful API calls. I've created either .cfm
or .cfc
templates and components that spit back JSON formatted data -- just within the actual standards of REST. REST is one of thise new things that is being worked on so the guidleines have to still be ironed out.
What do I mean by standards? Well for one thing, REST calls are usually done by calling pages like this:
https://example.org/API/1.0/users (get user list)
In my case, I was making calls like:
https://example.org/API/1.0/users.cfc?method=getUsers (get user list)
So although not completely within the guidelines, the output is in REST standard format (JSON). The main reason for deviating from clean endpoints is because the environment I had to work with. At work we are still working with Coldfusion 8. So clean URLs can be done but take a lot of work and REST isn't supported outright by Coldfusion until version 10. Most businesses have a hard time with upgrading to the latest and greatest version because of costs (Adobe Coldfusion license are SUPER expensive) and possibility of system failure with incompatibility. So it's a huge step to take and I get that -- but it makes it difficult for developers to do their job efficiently. But alas, being a developer we must adjust, and most of us do so quietly.
With this new client, we are using PHP/MySQL as a backend and it opens up a lot of doors that aren't usually opened. The great thing about PHP is that it is free and is updated quite frequently to support the newest tech. So this project was going to be a little more fun.
Up until now I have primarily focused on the design of the web app. The clients have been super happy with the direction I'm taking. Now that the designs are approved, we are going to get into the actual coding of the application. My choice of a backend solution this time is going to be Laravel. I've used a few frameworks in PHP in the past, but nothing like this. Laravel is supposed to be a lot cleaner and lighter. So far from the testing I'm kind of liking it. Setting it up on my public testing domain was easy with a few tweaks to make it work and secure the installation. Installing it on my local testing box took a little bit of time because what I found out to be permission issues. Note to self: follow all directions thoroughly -- even if the instructions are merely suggestions vs actual required steps.
Since I'm just using the RESTful parts of Laravel, it'll be interesting to see what happens when I merge the REST framework with MarionetteJS's MVC approach. The nerd inside of me is super excited.