tags:

views:

89

answers:

4

Need some guidance and ideally some first-hand experience.

We committed to a php framework which, shortly after we built the first rev of the product, stopped all development on the framework for about a year, forked twice, and doesn't really have a big community to begin with, meaning no plugins, tutorials, etcetera.

For another project we developed on rails and it has been night and day: a robust, continually developed framework and a healthy ecosystem of great plugins and a community that is active, growing, smart and helpful.

But the thought of junking all the sunk time and costs into the framework has been a huge hurdle that I'm not sure we're ready to cross, to go from php to rails. However, trying to work with this framework/s has had various level of frustration and investment.

Are there some ideas on how such a port could be less painful (staying in php but a similar OO framework that is growing/healthy?)

Suggestions on how we can continue to plow ahead with what we have?

Ideally someone who maybe found themselves in a similar situation would be super helpful for us to get our heads wrapped around it. The internal conversations we keep coming back to and I'd like to find a direction and move forward.

Thanks for some suggestions, or even questions, that will help us build a decision-matrix around it.

PS: The two or three people I've met on SO who actually have used this framework have been awesome, so I don't want it to be a neg on that. Size (of community) at least from our perspective does matter, and I think we just are seeing the comparison with Rails (perhaps that's an unfair comparison) So thank you!

A: 

I would suggest taking a look at the Akelos framework, it is supposed to be a port of Rails to PHP and could significantly ease your framework transition.

As far as moving forward with your current implementation is concerned I would agree with the thought that it's time to switch if your current framework does not have a healthy user base and solid forward progress, this is a key factor for me in choosing a long-term framework solution. The other key factor I hold just as high is how close the framework's implementation, support features and eventual goals line up with the project I want to apply it to. With so many PHP frameworks available you now have the option of being very selective and should take full advantage of that.

Cryo
Isn't cakephp the ramework that is suppose to be a port of rails??
AntonioCS
@AntonioCS Not that I'm aware of. Akelos touts itself as a port at least.
Cryo
+3  A: 

No matter how far down the wrong road you've went, turn back. Sunk costs are already sunk.

I'd suggest Zend framework if you're going to stay using PHP. Make sure that you build unit tests as you start to refactor so you can be assured that your new code does the same as the old.

Mike Sherov
+1. I like the "Sunk costs are already sunk." part
Arms
Do you believe that my criteria of a "poor framework" was right --- I know this is subjective -- but I'm trying to get at, is it worth plowing ahead and what are the considerations?
Angela
My only consideration is overall development time. While you may look at Rails and say this is so much better than what we currently have, you're overlooking the most critical feature of keeping your project in the existing framework: it's already built.Do you find yourself constantly wishing for plugins in your old framework that are already implemented in your new framework? Is the old framework sluggish? Is it difficult to write new code with it?Sure, a vibrant community means lots of tutorials... but, how often are you unsure of what to do in the old framework? Do you need tutorials?
Mike Sherov
Yes, this is what I'm evaluating and needing some people to bounce off. The minimum viable product we were able to get to using this php framework. Has it been painful for simple things like autocomplete? Yes....will it slow me down in the future...I'm trying to gauge that by getting advice.So, yes, you are right: it is already built. But as with many web apps, I expect alot of iteration in the future to get it going....does that add more coloring?
Angela
Angela, it sounds like you're pretty certain that a switch is the right thing to do. I'd say go for it... Stick with PHP so you can port over slowly and in pieces. Write unit tests to verify new code. In the end, you'll have a better product, good luck!
Mike Sherov
A: 

I can't answer all of your questions, but I was in a similar situation about 6 months ago. Long story short, I gave up on my own framework and moved to Symfony. I hated the idea of abandoning what I had worked on for so long and was so accustomed to, but I couldn't ignore the community aspect. Aside from plugins, I needed to be able to ask other people things about the framework - something that just wouldn't have been possible had I stuck with my own framework. The learning curve sucked (even though I knew it would be inevitable), but in the end I have no regrets after switching. I feel a lot more confident in my products now that I use a mature framework with a healthy community. I would suggest looking at the big name PHP frameworks, and seeing which fits your development style the best.

Arms
Would you say that in the end, the time saved by going to Symfony outweighted the time it ook learning and porting?
Angela
Yes. The costs in learning a new framework were nothing compared to the benefit of having access to a more mature, feature-packed toolset. It was a tough decision to make, but it was the right one.
Arms
So you are happy with symfony as the choice? Were there some debate in options?
Angela
Very happy. I needed a framework that would scale well from small to very large projects, and one that could be customizable. The decision was between Zend Framework and Symfony. The beautiful thing is that you can use Zend classes within a Symfony project, so I'm getting the best of both worlds. Here's a question I posted related to this subject http://stackoverflow.com/questions/1561149/what-frameworks-would-you-suggest-for-a-strong-extensible-dev-platform
Arms
Did you find the community on Symfony responsive and the plugin eco-system pretty plentiful and was that worth it?The framework I use has basically about one person who responds on one forum and two on the other forum, and maybe three relevant plugins.Thanks!
Angela
The Symfony forums, mailing list, and of course Stack Overflow have all been a great source of info and responsive. There's a large number of plugins and it seems like every week there are new ones. Like I said, I'm very happy with the decision.
Arms
A: 

It really depends on the cost of changing vs. the cost of maintaining what you have. I don't think anyone here at stackoverflow can make that judgment call for you. I would suggest though, that it's easy to focus on the bad things and forget the things that work. People have a tendency to underestimate how much work they have to put into a port from one framework/technology to another. So if you plan to go that route, try to make it in as small steps as possible; Eg. take the smaller projects first, to get a feel for what it means to port a project over. This will give you time to pull the brake if it turns out to be unmanageable. It will also give you time to adjust to the new platform (Eg. you say that you aren't quite ready to make the step from php to ruby yet).

troelskn
Good point, I think I need to write down what, in addition to no community or plugins, is in the way.
Angela