Let’s start with this Wikipedia’s article: http://en.wikipedia.org/wiki/Content_Management_Framework
There is a nice example to understand where is the place of CMF:
So we have a line with two ends: [ CMS -------------------------- Framework ]. CMF is somewhere between. But first, let’s look at the ends.
CMS is for people not familiar with programming, while Framework is a programmer’s tool.
But I realized the following. Most of us are using Yii to create a kind of CMS designed for a specific task. And me too. I don’t need a general solution (like Drupal, MODx etc.). There are two (I have in my mind now) reasons:
-
Too complex admin panel. I need to learn it, but my customers don’t and won’t do it. It’s not intuitive and obvious.
-
Extensibility. Some CMSystems have API. But I’m pretty sure I can’t solve any task using only it’s API. I’ll need to learn source codes.
I think really serious applications are always need a programmer. So a programmer has a choise, whether to use CMS or Framework. I choose Framework (Yii of course ).
But how do we (programmers) solve our problems using Yii? Each of us have the same “chunk of wood and steel” and the same task to make a “hammer”. Could be also nice to have the same “scenario”. Different patterns solve this problem, especially ActiveRecord and MVC. But of course, it’s not enough to build a CMS using Yii. Also, we don’t need a “universal” CMS, because different projects have different database schemas, some projects don’t need user management, some projects are really “unique” and need a special admin interface (or several).
Now I can explain what’s CMF in my vision:
First of all, it’s a programmer’s tool. It’s a set of patterns to build a CMS.
Assume, you need to make a catalog of products. You have a database schema with 3 tables. First table for common items’ properties (name, description, cost, added_at), second table for Cellphones (where only cellphones’ properties are stored) and third table for other products. Maybe this schema looks too complex, but it depends on the task. There are really many variants of schemas. Now, how to “handle” this schema with ActiveRecord? Also, we’ll need an interface for adding products. And then we’ll add to our application Users and Product Makers. I can’t count the number of different program solutions of this problem, because it’s too big But actually this can be done using 3-4 patterns (I’m not going to describe it here).
So, CMF should have some extensions of ActiveRecord. Combining these extensions you can perform an easy Object-Relational Mapping having a pretty complex database schema. Also, CMF should have a set of view templates using which you can build an admin panel.
What do I want to say? Simply “It’s good to have a CMF based on Yii Framework”
Using Yii one can build (almost) any web-application. Using CMF one can build (almost) any Content Management System. I’m thinking of creating such CMF (at least, for personal use).
Thanks for reading and for your comments (I really want to know your opinion ).