帝国、PHPCMS及织梦对比(一):自定义模型功能分析
作者:落叶 来源:pmume.com 时间:2011-08-26 13:01:54
写在前面:本文为落叶原创帝国CMS、PHPCMS及DEDECMS对比系列文章之自定义模型功能对比分析,其它不同切入点的CMS对比分析文章将陆续发布。
早期的文章管理系统,数据表字段模型都会内置好,按自己的思路,把文章模型、信息模型、图片模型都内置,然后用户根据需要,在设置栏目时选择不同的模型,实现不同的需求。然而这种内置模型字段的方式,不能很好的满足站长的各种个性化需求,所以各种CMS都推出了自定义模型和自定义字段的功能。
对于PHP程序员来讲,自定义模型实际是在数据库中建立一个新的数据表,然后添加不同的字段来记录不同的数据,自定义字段功能,即在原有数据表中添加新的字段,或者在附加表中添加新的字段,然后根据数据模型进行数据写入、数据查询读取、数据在模板中的展示操作。而CMS的模型自定义功能,则是把这一系列操作内置,流程化,自动化,建立模型,选择不同的字段类型建立字段,根据不同字段类型,自动生成后台数据录入界面和前台数据展示页面。站长不需要编程知识即可很方便的根据自己的需求,设计不同的数据模型,更加方便站长个性化建站。同时,懂PHP编程的站长,除了能够很方便的建立各种模型外,省去了数据录入和数据查询展示的重复操作环节,专注于个性功能的开发,能够更快更好的制作各种各样的功能模块。
前面部分说到了自定义模型的优势,那本文下部分主要从自定义模型流程对比、自定义字段字段类型对比、自定义字段选项对比(主表副表、前台投稿、设置权限等)三个方面。
详细对比分析下帝国CMS、PHPCMS、DEDECMS,这三款CMS的优缺点。
1. 自定义模型流程对比
在CMS中自定义模型,我们一般最期望实现的两点是1)在数据库中建一个表,并且可自由设置表中有什么字段;2)建好字段后,后台数据添加表单能自动生成,前台数据展示直接能通过标签调用,而不需要自己写读取数据的PHP代码。
那么这三款CMS中是怎样满足我们的这两点期望的呢?
按照帝国CMS的官方提示,帝国CMS自定义模型一般步骤为1)系统分析、2)建立数据表、3)建立字段、4)建立系统模型。
帝国自定义模型的创建步骤实际为先建立一个数据表,然后建立字段,每一个字段类据类型等作详细设置后,再整体控制各个字段的用途及前台后台数据录入界面的格式即建立系模型。建立系统模型的过程实际是对数据字段在模型中所扮演的角色和权限的分配过程,如是否作为录入项、是否作为投稿项、是否可增加、是否可修改、是否作为结合项等。
按帝国的思维,建表和建字段只是完成了建数据库的操作,而系统模型建立的过程则为规划数据库如何使用的过程。
PHPCMS中添加自定义模型只有两步,先建立模型,然后添加字段。在添加模型的过程中不仅完成了一般意义上的建数据表的工作,同时,也完成对模型的一些初始化设置,如模型中的数据是否生成静态,栏目页、列表页、内容页的模板及URL规则等。
添加完模型后,会自动生成一部分字段,可对这些字段作修改或删除处理,同时可以自由增加字段。
PHPCMS中自定义模型建立字段时除了选择封装好的字段类型外,也整合了对字段属性的设置,如是否在前台投稿中显示、是否作为标签默认读取字段、是否作为标签调用排序字段等。
DEDECMS中自定义模型建立亦分为两步完成,建数据表作初始化设置然后添加字段。添加模型时可选择模型是自动模型、系统模型还是独立模型。独立模型可突破原来的主表+副表的模式,方便小数据量的灵活处理。
从三款CMS的自定义模型流程对比来看,帝国CMS的属性设置相对更为细致但似乎简洁性不够,很多描述过于专业或者不够明确,站长朋友们需要看较多帮助文档才能了解到每项的意思,而PHPCMS和DEDECMS中则相对简洁,一目了然知道每一项的涵义;PHPCMS和DEDECMS在建立模型表的同时完成了对模型的初始化设置,整个设置是针对整个模型的,与具体字段无关,属全局性设置,而帝国CMS中模型的设置则是整合了对字段的整体操作,在建好字段之后,细化到对字段的细节控制,属“微观调控”。
帝国CMS中能够单独设置字段的前台后台展示模板,相对更为灵活些; PHPCMS中则由于字段类型是以组件形式封装的,前台后台数据录入界面自动生成,简便,但在某些时候需要自定义部分字段的表单HTML时只有在模板中使用逻辑判断才能实现,灵活性稍缺乏。DEDECMS模型设置和PHPCMS类似,DEDECMS这块的优势在于可以选择数据模型是主表+副表的模式还是独立表模式,并且可以自由设定前台后台的数据处理PHP文件,方便二次开发。
按我的经验来看,帝国CMS这块的设置虽然很细致,但实际把问题复杂化了,据观察,帝国CMS的用户自定义模型的深度用户并不多。实际按照PHPCMS和DEDECMS的思路,建模型数据表的同时,对模型作一部分全局设置,然后单个字段中根据不同字段类型及不同需求作细节设置,这样的流程更直观更方便。
另外,PHPCMS中自定义模型后可直接预览模型的数据录入界面,方便查看字段设置的效果,这点非常方便。
所以,从自定义模型细节易用性对比来看:DEDECMS>PHPCMS>帝国CMS。