There are many questions answering this question here on StackOverflow and I was recently just in your position researching many different frameworks as I want to standardize my code as well I ended up choosing Codeigniter because I wanted something with good documentation, and that was very light (lighter == easier to understand IMO), and something that was not too strict. In Codeigniter if you really want to you can just code regular PHP and it lets you do that. I like this option because if I really get stuck on something, I just code it in raw PHP the way I know I can.
I've only been using Codeigniter for a few weeks but the learning curve isn't too difficult and this is my first framework I've used.
There are many questions answering this question here on StackOverflow and I was recently just in your position researching many different frameworks as I want to standardize my code as well. I ended up choosing Codeigniter because I wanted something with good documentation, and that was very light (lighter == easier to understand IMO), and something that was not too strict. In Codeigniter if you really want to you can just code regular PHP and it lets you do that.
I like this option because if I really get stuck on something, I just code it in raw PHP the way I know I can. I've only been using Codeigniter for a few weeks but the learning curve isn't too difficult and this is my first framework I've used.
From what I've been reading it looks like Codeigniter would be good to start with php frameworks, I think I am gonna give it a try, thanks. – Meredith Dec 29 '10 at 3:14 4 CodeIgniter is a good starter framework; do not forget about Symfony though as once you become an more advanced it will just seem "logical". – Darren Dec 29 '10 at 3:16 Yes, Symfony looks like the best one I've seen so far, but also looks really complex, and I want to finish this app quickly.
I'll definitely start playing with symfony when I have some free time. – Meredith Dec 29 '10 at 3:19 I'd agree with Darren as well. My plan is to get a "feel" for frameworks by jumping in with CodeIgniter.
Then once I have a strong grasp of how it works, I can move on to more advanced and powerful frameworks such as Symfony or Zend. – justinl Dec 29 '10 at 3:19.
PHP Framework Decision - Analysis paralysis! Why do I need to use a popular framework? Kohana or CodeIgniter?
If you want something easy to get started, you might want to look into the minimal frameworks: What's your 'no framework' PHP framework? Lightest possible PHP MVC Any procedural (non-OO) PHP Framework? But actually the big dozen are advisable if you want good documentation.
Symfony and CakePHP are complex, CodeIgniter and the newer Kohana fork are beginner friendly. While there are many more to choose from. Pick a nice API, and maybe look out for one that explains the difference between MVC and MVP.
Also for a lengthy list: http://matrix.include-once.org/framework.
My first choice would be cakePHP. Easy to learn, great documentation, api and a few good books: Beginning CakePHP: From Novice to Professional – David Golding (good; start with this one! ) Super Awesome Advanced CakePHP Tips – Matt Curry (good and free :-)) Refactoring Legacy Applications Using CakePHP – Chris Hartjes (not read yet) Practical CakePHP Projects – Kai Chan, John Omokore & Richard Miller (not so usefull).
The next iteration of cake, Lithium looks pretty awesome as well – PurplePilot Jan 2 at 9:25.
I was in your shoes just 2 years ago. I personally chose to use Zend Framework. It's important to understand that ZF is built by the same guys who maintain and improve PHP itself!
Just that gives it a lot more credibility. When choosing a framework you should consider the following: Size and Quality of the community - Being one of the most widely adopted PHP frameworks, Zend Framework (aka ZF) has the biggest PHP framework community; hence, most of the problems you will encounter will have already been answered. There are frameworks out there that are supported by just a few developers and if they happen to quit working on it, you're stuck with the latest version of the framework.
This not likely to happen with ZF. Documentation and Beginner Friendly - The ZF docs are pretty good, full of examples and beginner friendly. There's also a ton of tutorials and quick start guides2.It's extremely easy to start up a new ZF app.
Investment - Sure you have to invest sometime learning how it works, but everything's like that in the software engineering world. You have to understand OOP3 and MVC4 before hand as well. Many people don't understand that using a framework to develop procedural-like code (instead of OOP) is defeating the purpose of... using a MVC/OOP framework!
Therefore, it's important to grasp and master these concepts so you develop the best code possible. And by best code I mean a) code that works b) code that's easy and fast to understand and maintain. This investment is well worth it since it will drastically increase a) speed of development b) speed of debugging and maintenance.
Also, take advantage of this moment in your programming career to also adhere to other common best practices (if you haven't already done so) by using: a) Unit Tests - incredibly easy to integrate within ZF. Look into Test Driven Development5 as well. B) An IDE - VIM, Netbeans6, etc c) Design Patterns7 d) Source Control - Mercurial8, Git, SVN, etc e) Finally, keep yourself in the loop by following what's going on the PHP world9.
You'll thank yourself yourself in your near future! I know I did.
As no-one has voted for Symfony here I will and here's why. There are two types of frameworks, well a whole range actually but in the PHP/MVC area which is where we are in this thread there are Glue and Full Stack frameworks. Zend and CodeIgniter are Glue and Symfony and Cake are FullStack.
Glue are the ones where you can pick and choose which components you can use and how much "standard" code you can use. These tend to have a gentler learning curve as you can pick the bits you like that help and fill in the more difficult bits with code you know. FullStack means you need to use the lot and so the learning curve can be quite steep.
Also with FullStack there can be a tendency to balk against the way something is implemented rather than just accept and flow with it. Coming from a write everything myself background I initially favoured the Glue's but have now migrated to FullStack using Symfony 1.4 and 2 and Sinatra and Padrino. The extra speed and power the fullstacks give is not something I would like to give up.
One downside of CI is that it is built for php4 compatibility and so does suffer in a number of structural ways when you come to push the framework, Kohana is a fork that addresses this issue. And I dislike Zend because there are so many ways of doing the same thing that after a while the Framework seems almost irrelevant (Sorry personal rant) At the end of the day use of a Framework is good because it adds a structure and can be a great aid to learning and the one to choose is the one you feel comfortable and are productive in.
CakePHP is the best solution with a small learning curve.
One downside of CI is that it is built for php4 compatibility and so does suffer in a number of structural ways when you come to push the framework, Kohana is a fork that addresses this issue. At the end of the day use of a Framework is good because it adds a structure and can be a great aid to learning and the one to choose is the one you feel comfortable and are productive in.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.