Alex Rivera | Logout

Introducing Rails into a PHP shop? Or build up what we already use?

Asked 2010-12-01T02:45:48.113
12

Here's the setup at our shop:

  • 1 VERY large PHP app (Kohana 2) with many dev's and lots of infrastructure
  • Multiple (4-5 and growing) small PHP apps with 1-2 dev's working on these

Issues:

  • no testing
  • no documentation
  • a fragile and tedious deployment process

I'm being moved from the single large app over to the side of the house with the multiple smaller apps. The lack of testing and a proper deployment process in our shop makes me nervous that I'll spend more time fixing bugs and deploying fixes than actually writing code for new features.

Solution A:

  • Introduce PHPUnit and Selenium
  • Move us over to Phing and Dbdeploy

Problem with A: Setting up PHPUnit has been relatively easy, but functional testing with Selenium has been a total pain. Our VM's work great for dev, but Selenium pegs the needle, plus a few simple tests take forever. I don't doubt I could get all of these technologies playing well together, but it all seems like a mess and the complexity of these working together seems fragile.

Solution B:

  • Switch to Rails
  • Use integrated testing and/or Rspec/Cucumber (integration of the latter seems simple)
  • Use integrated DB migrations
  • Use Capistrano for deployments

Based on the major issues of testing, I began to look into Rails. Based on the nature of these other sites we manage, I think Rails may be a good solution. Built-in testing, great community, lots of great tools, and fast development.

Problem with B: Every app we have right now is on Kohana 2 (PHP framework) and no one in the organization knows Rails. The downside to introducing a new technology would be fracturing the teams. If I migrate the sites to Rails, then get hit by a bus, we're kind of screwed.

Bottom line:

Based on our pain poin

Edit
Report

1 Answer

6

There are a lot of factors that will influence your decision.

If you switch to rails, keep in mind that it will take a while for you and your team to learn the framework/language and can easily slow adding features for a while. It really just depends on your team, time constraints and many other factors.

Maybe try 1 of the small projects with rails and see if you and your team actually like rails (I dont).

The answer will be different for every team. I would have a group meeting and discuss the pros and cons of both decisions. Then have a vote.

answered 2010-12-01T05:04:43.653

Your Answer