Difference between CMS(joomla,drupal) and Frameworks(Zend, Symfony, CI)
What kind of applications are developed using a CMS like joomla, drupal and what kind of applications are developed using frameworks.
If 开发者_如何学Goall kind of applications can be developed in a CMS like drupal then why do we use a framework like SYMFONY?
A CMS is a sort of framework, but generally limited towards making websites with article/page type content with an out of the box article management system.
A framework provides often used web development boilerplate code, they support:
- MVC paradigm
- Url parsing and handling
- Templating
- Better request handling
Joomla & Drupal has user management via access control lists.
Leaving CMS aside, you can use the user management to assist your php component that bolts into the CMS. Thus you have a platform/framework that is being updated and patched by a broader community.
the changes you make to the component can be updated from the backend of the CMS as you make them available.
CMS is product (Content Management System) which allows users to publish and manage content its a solution developed in a language. Drupal and Joomla are PHP solutions of a CMS. You customize JOOMLA and Drupal to your needs for your your custom CMS Product. Frameworks are different they are coding patterns design patterns implmented together to use a language in a modularized and more maintanable way. When i say coding patterns it can be use of Model view Controller architecute to seperate your Busnieess logic from Presentation.
From my understanding, a CMS is a pre-built system that allows you to quickly add/modify content. It gives the average user enough flexibility to change what your site does by installing modules and themes.
With a CMS, all the programming code is already written, and the user just inputs data for the site (pages, blog posts, whatever -- see Wordpress, for example); unless, of course, you want to modify the underlying source code or create a custom plug-in for it.
A framework is a system, sort of like a CMS, but grants you even more flexibility with your site as you are to write all of the code yourself.
With a framework, you actually write the code to implement the web site (or whatever it is you are building), but you start with some ready-made code that defines the general structure of the software (not the site's structure, mind you) and which usually provides many functions/methods for handling typical coding tasks. The idea then is that the developer spends a larger percentage of his/her time on the actual "business" code and less on the detailed nuts and bolts (i.e. "framework") upon which that business logic is implemented. Check out the CodeIgniter tutorials to get a feel for what this means.
If a particular CMS provides a large majority of the functionality as well as look and feel that you need, then it is probably a good solution for you (with a possible caveat being how efficient its code is and how scalable, should your site's traffic and growth require it). But if you would need to make a lot of modifications to a CMS to get it to work the way you want, you might actually be able to develop the site more efficiently on top of a framework, so that you don't spend lots of time trying to figure out what to change and how to change it in a bunch of CMS code you did not write -- also dependent on how well you know the framework you would work with instead, of course.
Not all kinds of applications can be build using a CMS. A CMS isn't really suitable for building applications that aren't primarily concerned with content management. But the term "content" is loose enough for a CMS to be adapted to many applications.
I was contracted to build a blog aggregation thingy in Drupal once. It wasn't the right tool. And recently I built a mobile phone application in Drupal too. I would rather have done it in rails.
A CMS such as joomla, can be used in order to create completely custom applications such as an ordinary framework such as Zend etc.
The advantage of using a CMS is that you may use ready made modules, components and plugins as well as create your own ones and thus create a completely custom application.
Joomla uses the MVC paradigm and has its own framework. It provides really good user management (from version 1.6
Why reinvent the wheel.
精彩评论