For the past months I’ve been getting into Web Development, I tried both sides of the coin: ASP.NET and PHP, I quickly fell in love with the second, the documentation and the community was just very helpful.
I started out by reading PHP for Absolute Beginners, this gave me a decent grasp over the language.
Enter frameworks! After going around the web, it became clear that there was one framework that really suited beginners: Codeigniter. I absolutely love CI, through out my programming experience in college I’ve always relied on good books. CI didn’t need a book. The documentation is so well written anyone with a little bit of PHP experience can get into it.
Learning CI led me to development websites (such as Stackoverflow) and I started reading things that kinda make me sad, “CI doesn’t scale on big projects”, “CI isn’t even a framework”, “CI is for newbies, get pro like me bro”.
Ok, so maybe CI shouldn’t be used for huge projects – at least that’s what I got from the overall community. But I’m wondering here, where should I go from now? I feel like I should get some experience in at least a few MVC frameworks, but it’s kinda confusing on where to go at this point, today Zend is best, tomorrow Symfony is, but damm, that Yii s looking good too! All of these frameworks are getting updated to 2.0 and the documentation is scarce, there’s not many books going around (if any), the respective websites have a lot of information, but for someone coming from CI, it all just feels very intimidating to start out. Starting projects with Windows CMD? PHP accelerators?
I’m guess what I’m trying to ask here is, how do you professionals see the PHP framework world these days? Which Framework would you recommend? Should I hop into this 2.0 bubble or are these versions not stable yet? And if possible, could you point me in a general direction when it comes to documentation?
Thank you for your time.
A framework is merely a tool to achieve a purpose. For you, to get a grip on the language try continuing with CI. The things you will learn – the concepts – will translate to other frameworks, even if their implementation is slightly differnt.
I personally favour Yii, but I have dug up symfony, zend and CI as well as few others in the past. One is not better than the other for most apps; look into differnt things, see what you like and roll with it.
What framework isn’t really the question. What you should be doing, IMO is, try to ‘learn to learn’ rather than just ‘learn’.
What I mean is, you should try to learn php well rather than a specific framework X.
That way, when time comes, and you have to build a scalable[scalable isn’t even on my browser’s dictionary yet!] system, you can figure your way through, with the experience you would have accumulated. This is what I believe Steve Jobs refers to as connecting the dots in a famous speech.
Firstly, there web development isn’t a coin, and there’s more than two sides. There’s a plethora of web development languages: PHP, .NET, Python, Ruby and so on.
Secondly, I don’t think you should be looking at frameworks if you’re new to web development/PHP. Learn the language first. Frameworks instil framework-specific conventions only; so when it comes to working with another framework or even vanilla PHP, you’re going to be at a loss. A knowledge of PHP assists in choosing the right framework for the job. Investing in one framework this early will only make you reliant and dependant on that framework.
I speak of this from experience. I once worked for an agency that was hiring PHP developers. During the interview process, we got applicants that claimed to be PHP developers will knowledge in frameworks such as CodeIgniter. When given a simple programming task (take an all-uppercase phrase and make it title case) the majority failed. Why? Because they had built everything in frameworks and not learned PHP itself. So when they were put in a situation where their framework of choice wasn’t available, they stumbled.
Don’t make this mistake. Frameworks are good, but only when you know what you’re doing and definitely not as a language learning tool.
I’ve used many frameworks in the past. I used CI to start and then moved over to Yii as I gained experience. Frameworks may provide the project with tools that you don’t have to write yourself, saving time. However there may be performance issues. CI is great and I haven’t had too much trouble with it. You can slim it down and remove functions that you are not using. With CI I have created full Web APIs with them with no problems.
I guess what I am trying to say is that it may be your preference or client preference on which framework to use.