0

0

phpcms跟帝国cms区别是什么

angryTom

angryTom

发布时间:2019-07-18 13:31:44

|

4673人浏览过

|

来源于php中文网

原创

phpcms跟帝国cms区别是什么

首先我们为大家罗列一下,选择cms是应该考虑到哪些方面

    1) 程序是否安全稳定,会不会经常有BUG

  2) 程序使用简不简单

  3) 程序生成静态速度是否够快

立即学习PHP免费学习笔记(深入)”;

  4) 程序模板多不多,模板好不好做,标签好不好用

  5) 程序负载能力强不强

  6) 程序模块多不多,如有没有房产模块、有没有黄页模块、分类信息模块、问答模块等

  7) 程序二次开发是否灵活

擅长或喜欢二次开发的基本首先会考虑二次开发的灵活性,及模块方面有没有适合自己的;而普通用户则更多的考虑程序易不易于使用,模板标签简不简单,所以CMS选择的焦点基本集中的二次开发的灵活性模板标签的易用性两方面了。

 1.从二次开发的角度来讲:

  PHPCMS(2008版)更多算作是一个开发框架,离一个成熟的产品太远,先后使用PHPCMS二次开发搭建过五六个平台,从刚发布的PHPCMS2008版,及现在的PHPCMS2008 sp4版(pcv9不作评价,开发初期做过较多的测试、反馈过一些建议,但正式版我并没用过),每一次我都会遇到同样的问题,总是边骂低级错误边作修改,到现在官方停止开发了,很多刚发布时的BUG都还存在。虽然如此,PHPCMS仍然是首选的CMS,为啥,就是他很灵活,想怎么改就可以怎么改,想到即可以做到。在我看来PHPCMS代表了一种极端,即如果首要考虑二次开发,那PHPCMS是不错的选择。

  PHPCMS中想实现任何数据的读取只要写一条SQL,然后面模板中GET标签调用下就行了,如果觉得模板中处理的不够,那么只需要在对应同名的PHP文件中作些处理就行了。甚至,只需要在头部引用common.php文件,调用模板引用函数引用模板,然后建一个同名的HTML文件作为模板,即可在PHPCMS的基础上实现很多想要的功能。

  帝国CMS,虽然官方的宣传语也是想到即可做到,但从我在对帝国CMS作一些简单功能需求的修改及插件开发来看,帝国CMS离想到即可做到太远,限制在帝国的开发思路之下,有些功能即使是很小的功能,也需要对帝国的核心程序大动干戈。就拿一个简单的需求“我想获取内容页分页的页码,以根据不同的分页来实现一些不同的显示”,这个需求的后面不谈,单就获取内容页分页的页码来讲,几乎是不可能,为啥呢?第一,他没有这个标签,也没有提供变量,论坛里很多人提到这一需求,始终无法解决;第二,帝国的模板标签解析方式是老的动易的思维即程序先处理好每一个标签的结果,连HTML都带上了,然后把存储在数据库中的模板读出来,把里面的标签一个一个替换,基本上内容页的每一个标签都是经过了一个专门的处理过程来实现,耦合度太高,大部分代码都没法通用。(现在主流模板引擎都是先把标签解析编译好,然后缓存,标签已经变成可执行的PHP程序,然后程序处理好数据后直接调用模板缓存,执行。标签都是通过统一的方式来处理的,通用性较强。)而也正因为每个标签都封装的很好,做的很完整了,所以使用起来又非常简单稳定,只要按提示放上去,就不会有问题,所以帝国在安全性、稳定性、易用性又非常不错。

Paraflow
Paraflow

AI产品设计智能体

下载

  举例来说吧,有一个用帝国CMS做精品故事网的朋友(http://www.pmume.com ),想实现如下图所示内容页分页标题导航。

  我看了下,帝国论坛也有非常多的朋友有这个需求,但基本没有看到有很好的解决。然后我看了下帝国的标签的代码,他内置其实有一个内容页分页下拉导航标签。本来一般的程序的思维是实现数据和模板的分离,把数据处理好,其它的表现形式(是下拉列表,还是普通文字列表)这个交由模板来处理,而帝国中确全是由核心函数来处理的,在functions.php和t_functions.php中文件中单独写函数来处理这个标签,并且把HTML都封的很好了,呈现给大家。我为了实现内容页分页标题导航列表,仿照他的标签的实现方式,修改这两个核心文件才能实现。而事实上,其它CMS中,只要先PHP文件中分析出文章的分页标题,记录成数组变量,然后在模板中用循环标签循环一下就OK了,想怎么展现就怎么展现。(详见:http://bbs.chinaz.com/CMS/thread-2020475-1-1.html)。

  帝国CMS和PHPCMS同样都有自定义模型的功能,在字段自定义方面,帝国做的更人性化些,更适合新手朋友使用,而PHPCMS功能上是没问题的,有些设计上合理性差些,如定义字段只能存在副表(PCV9有了改进)。帝国CMS中每个模型都是单独的数据主表+副表,不同模型间,数据ID无关联,这样的问题是不同的模型中有相同的ID的文章,涉及到全站数据操作的时候很纠结,非得一个一个判断模型,小编今天在设计一个帝国CMS插件时,深深的体会到了这样的设计的杯具。PHPCMS所有模型共用一个主表,副表各自使用,即所有文章不管什么模型的标题、摘要等信息都存放在统一的表中,这样全站进行数据调用都很方便,这样的缺点也很明显,自定义字段只能放在副表中,如果自定义的字段想作为数据调用的条件或者搜索条件,那就很杯具了,非得两表联合查询,和把整篇文章的数据读出来,基本没啥区别。

  简言之,以这样不太高的PHP水平,可以使用PHPCMS毫不费力的设计出各种模型,包括房产模型、问答模型、汽车模型等,只要了解模型的字段有哪些,流程怎样,后台建下模型,然后把list.php和show.php复制一份,作些个性修改,然后上传下HTML文件模板即可,要伪静态就伪静态,要生成静态就生成静态。而如果以帝国作二次开发,那么也可以很方便在后台自定义模型建表,但是数据流程处理方面灵活性就缺很多了,在使用他的数据操作类,操作数据后,要熟悉他的模板处理方面,读取模板,然后单纯的写函数来替换变量标签,如果要生成静态,他原来的内容页静态生成函数还没法通用,需要自己单纯来写一个静态生成类。一句话,很痛苦!还不如自己全写PHP了事。

2.程序稳定性模板标签易用性角度讲:

  PHPCMS中的标签都是以程序员的思维来实现,首页、列表页的标签TAG标签和GET标签实际都是生成SQL语句,解析成函数执行;内容页的标签实现是变量,即PHP控制文件中把数据库中的数据读取出来,根据字段类型处理成干干净净的数据,放在变量中,然后PHP内容页模板中直接使用这些变量,逻辑判断也好,进一步函数处理也好,想怎么处理就怎么处理,更符合程序员的思维。但普通用户用起来可能比较揪心,改个模板还要懂PHP逻辑思维和SQL语句,从PHPCMS部分模块的明显的BUG残留来看,其实可以判断那些模块基本很少有人使用。(当然PCV9应该作了很大改进,这里不讨论。)

  帝国CMS中的标签才算是传统意义上最正宗的标签,他和动易(ASP类的CMS)的标签处理思维极像,这个标签是代表什么的,然后程序处理好后,直接整块替换。使用起来非常方便,并且帝国在细节上做的也非常优秀,在模板的下方都仔仔细细标示出来所有可以使用的标签,站长朋友们只需要按提示放上标签就行了,省事,安心。

  缺点这样标签只算标签,不是干净的数据,处理起来缺乏个性化,虽然帝国CMS模板也支持PHP,便是由于他的模板生成方式没是先解析变量成PHP,再处理,而是一边处理好标签的数据,生成时替换,所以限制也很明显。

  上面有提到朋友的精品故事网是使用帝国CMS做的,在文中提到实际是有意推荐,因为这个朋友在不懂任何程序的情况下,使用帝国CMS把网站做得非常优秀,这也正说明帝国在细节上做的非常优秀。

  上面废话了一大堆,其实基本意思也就两点:不需要过多二次开发的朋友,使用帝国CMS等会相对比较不错,而对二次开发要求比较多,并且对PHP比较熟的朋友,完全可以把PHPCMS当作一个框架来使用,BUG不是问题,这样改的才爽,最怕是的像帝国那样写的很死了没法改。

  当然,文章中主要提取帝国CMS和PHPCMS,似乎把使用DEDECMS的同学给忽视了,实现来讲,我遇到的站长朋友使用DEDECMS的还是居多数,这款CMS稳定性和标签的易用性是介于帝国CMS和PHPCMS之间的,小编这里只是把两个极端作了下分析,希望能给朋友们有些提示。



热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

707

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

327

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

350

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1221

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

360

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

799

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

581

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

423

2024.04.29

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.5万人学习

帝国CMS企业仿站教程
帝国CMS企业仿站教程

共17课时 | 1.7万人学习

dede织梦视频教程模版
dede织梦视频教程模版

共10课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号