How would you explain the difference between a PHP Framework and a CMS (like WordPress) to someone who is very technically savvy, mostly on hardware/networking, but does little or no programming?
As an amateur-to-intermediate programmer myself, I could try to answer these questions but I’d value the input of those who are more experienced with frameworks and CMS.
You can check out this slide to see the difference:
To put it in simple words:
A CMS provides you with a back-end (with a host of plugins and components) like Joomla, Drupal, WordPress, etc that allow you to manage front-end. Where as a frameworks doesn’t.
A framework such as CodeIgniter, Kohana, CakePHP, Symfony, etc: provides you with ready-made classes and libraries BUT you have to use them and build your own site ie: Front-end and Back-end.
You can build a CMS with a framework, but you cannot build a framework with a CMS.
A CMS is just that – a Content Management System.
A framework is a collection of libraries to build an application.
Framework = Library
CMS = System
A framework doesn’t “give” you anything, it’s just a skeleton. A cms will give you a functional site, and it’s just a matter of themeing and adding content.
A framework is just that.. something that you can combine pieces of to build an application.
A CMS is an application, that may or may not have been built on top of a framework.
frameworks create very good presentable web applications,whereas cms could be fast but can’t create as presentable quality as frameworks can.
I think this article:
explains the difference between a CMS and a framework. Furthermore you can see 3 examples of where to use a CMS or framework and why. Also if you read the comments below the article, you can see pretty interesting discussions about CMS and Frameworks as well.
I believe if you are building a simple or generic website use a CMS, but for more complicated projects (or web appliactions) with a substantial budget a framework is better suited.
I’ve been working for years as a JOOMLA developer.
You can do anything with all the most known content management systems(CMS).
MVC is the pattern there too. You can develop your own components, if you need something special.
Furthermore, you do not need to focus on developing common tasks, such as user management, Facebook co-operation, e.t.c.
Why reinvent the wheel?
Anything that has been build before, can be bought or even downloaded for free from the repositories. There are so many components out there.
As for appearance, there are 1000s ready made templates that you can get and speed up your development and lower your cost.