Hello, I have been a PHP programmer and can do 'almost' everything using PHP POP & OOP. Preferred OOP. However, I have been away from frameworks like Zend , Cake, Symphony et cetera just because, concept bounces my head. I am currently working as consultant and have not been experiencing any need of any MVC thing or maybe its coz I haven't used them. I am here asking about opinions. How is use of frameworks better than scratch coding. Scratch coding gives you liberty of creating core as you want and rules as you like. You know whats inside and thus, troubleshooting is a cake walk then, why MVC is preferred? It may sound funny but, I have sincere decisions to make. Please advice.
I haven't used any of the frameworks that you mentioned but from what I know any framework's job is to make your job a little bit easier! I'm gonna use jQuery as a example since it's a pretty popular framework. There is nothing you can do with jQuery that can't be done with plain Javascript! But what jQuery does is that it helps you do the same thing with just 1 function instead of writing like 10-20 lines of code yourself! And as we all know when you're coding something for the first time it probably has some bugs and errors, but with a framework, other people have already made those bugs and errors and fixed them for you!
MVC itself is an application architecture not a framework but there are frameworks that implement the architecture (not that you cant use the framework to create other architectures). You may need to read up some theory on application architecture and why people think it is best to separate the data from the logic from the presentation.
and that bounces over! I am talking about real application MVC based architecture framework. Like Zend... not JQuery, even I use JQuery, its a framework but, NOT MVC! Looking forward for a better explanation
It depends on your project, if it is big or small. If it is big, an MVC pattern would be preferable in terms of code organizing. You could use Zend 's classes without the MVC part. I do it all the time and it works very nice becose Zend 's code is very high quality. In the end, after you try a few frameworks, you will find on that you like, or create your own.
SO what framework do you guys suggest to start with and any tut link, if avail please give, screencasts are awesome, am ready to pay if its worth
Just go with Zend Framework, you'll easily know all the other ones after learning ZF In plus, it's released by the PHP Company http://framework.zend.com and http://www.zendcasts.com/ should be enough to start
Here's what I posted to a similar question a few weeks ago with regards to Zend, Symfony, Codeignitor, and CakePHP frameworks. I have used all 4, and I still stick with Symfony, although I did start with it so I am definitely a bit biased. Zend is the most used at this point. Of all the frameworks, I think it is the least like a framework and more like a bunch of modular chunks of code. Zend components can usually be used outside of Zend in other non-framework products. This can be a good thing, and it can be confusing and overly complicated. It is also so loose that 2 people can use the framework and their code and logic never resemble the others. As far a corporate / business usage, Zend rules for sure. Magento is also build on Zend which is probably the most developed shopping cart out there. If you want a fail safe, Zend would be the way to go. As far as the other 3, they are all fairly similar in their internals, at least when comparing to Zend. All are true MVC and all allow for ORM usage. I can't think of any functional advantage that any framework would have over the other. These wouldn't be the most popular frameworks if they had anything missing. Symfony is most geared towards enterprise level apps. It's the number 2 used framework at this point. Has awesome functional and unit testing, and a ton of command line tools and generators for rapid testing and development. You can nearly make a database, and website only from configuration files. I personally manage my database and build the application around it. Baseline performance, Symfony 2 (still in dev) is going to be the fastest, followed by codeignitor, then Cake way in the rear. Symfony 1.4 and codeignitor will be right in the same area. In the end the performance will be dependent on caching, ORM usage, proper code organization, server resources, etc... They can all be tuned fairly well. Symfony and Codeignitor can use external ORM's, Doctrine being the most developed at this point, Cake is pretty much locked into their own. For this reason above any other, Cake goes out the window for me. At this point, there is quite a lot of support for all of these. They all have good documentation, user forms, books, etc.. All are going to have a learning curve. Generally, what you start with will be what you stick with.
If you have a completely custom-written framework that works for you and your exact requirements, great! If not, these frameworks can save time getting started. It's also an advantage to use something that other developers will be familiar with, if you're passing code onto someone else it makes sense for you to both use the same system. I particularly like working with CodeIgniter, found it easy to get started with and well-documented as opposed to Kohana for example which basically leaves you to figure things out on your own(or it did when I tried it, at least).