views:

353

answers:

5

I wish to rewrite a medium web application (70 php scripts). Currently, it makes use of PHP in a procedural way and I am more than sure the code is not efficient, extendable or scalable.

My question is, for this scenario, which PHP framework shall I adopt it?

I wish to be able to do this rewrite as quickly as possible, performance of the framework is very important, a bloated framework should be avoided, lots of calls to FFmpeg, Shell scripts and other technologies will be used.

I appreciate any help in this decision as I have never used any of the frameworks before. I understand the correct choice is based on the project and I have tried to give details about this in the previous paragraph.

+6  A: 

This is a time-honored question for anyone starting a new project. The problem is that it's extremely subjective.

Before I start into it, my initial recommendation to you would be Code Igniter. I say this because you mention that you've never used a framework before, and performance is important to you. As a warning, I've never used CodeIgniter myself, but I've browsed the source and even copied techniques from it before. It's clean, simple, and popular.

So again, this is an extremely subjective topic. You might want to sit back and imagine the future of this project for a few minutes before you jump right in to a framework based on a recommendation from someone here who won't have all the project details. What's the developer scope? Are there ever going to be lots and lots of developers on the project? You might be faced with a decision sometime whereby you have a developer who doesn't know CodeIgniter, but might know Zend Framework, in which case you've got a ramp-up time to put that developer to work. Code Igniter is gaining popularity, but Zend is probably the corporate front-runner due to name recognition (note: my opinion, could be wrong).

How robust do you want this application to be? Will it ever be used in a non-web way, such as mobile or xml output? You might need a more robust View layer for these things, in which case Code Igniter might not be your best choice.

How stand-alone is this app? You mentioned you need to integrate some other technologies. Simple frameworks tend to not have a lot of this sort of thing. Again with Zend, you might find it's got some integrated plugins you can load up very easily.

There's dozens of things to consider when choosing a framework, and I'd definitely urge you to think about future potential of the application to come up with things that might be important.

zombat
Thanks Zombat for the length answer. It really has given me a lot to consider and more questions! Which is a good thing as a more informed decision can be made.
Abs
A: 

I personnaly use Zend Framework as a MVC and dORM as a PHP 5 ORM (object relational mapper). Zend Framework is supported by Zend, "the" company behind PHP. It allows you to structure your code in three layers: model, view and controller. dORM is the most complete ORM library that let's you persist your PHP objects in a relational database such as MySQL without writing a single line of SQL.

Olivier Lalonde
also use Zend Framework but propel 1.3 as a orm, very happy and the new features in 1.8 look interesting.
Brendon
+3  A: 

try http://kohanaphp.com/

zalew
I highly recommend Kohana, it's the best out there. You should of written a bit more information about why you like it though.
The Pixel Developer
A: 

if you what perfomance use Yii php framework. It is faster that cakephp.

niekutis
A: 

I believe the most important thing here is that you never used a framework before, and you're the one writing and maintaining the code. IMO, you should choose a proven framework with comprehensive documentation and a supportive community. I believe both CakePHP and Symfony fit the description. And for your performance problems, they're just a matter of raw CPU power (money) and installing something like memcache or something like that. To clarify: it's an easy problem to solve if your site isn't Yahoo! or Facebook.

Hope this helps. Good luck with your project!

Javier Constanzo
That's a good consideration but I think I am capable of mastering any sort of PHP framework. Although PHP frameworks are new to me. PHP isn't and I also understand the concepts involved and have had experience with OOP languages.
Abs