PHPCMS、织梦及帝国CMS对比(十二)之PHPCMS低级BUG题目分析

[复制链接]
查看618 | 回复0 | 2038-1-19 11:14:07 | 显示全部楼层 |阅读模式
落叶之前在CHINAZ发布了一系列关于PHPCMS、织梦及帝国这三款CMS对比分析文章,在对比分析中出现过对PHPCMS部门功能和架构计划方式显着的偏好,一些站长朋侪们在批评中多提到落叶在为PHPCMS捉刀的质疑。本文中落叶具体分析下PHPCMS2008中不停存在的而且在sp4终极版中仍旧存在的严峻乃至低级的题目及一些利用中遇见的“见鬼”的题目。
A、低级题目/BUG:
1.删除栏目时全部子栏目和子栏目下全部文章不作任何提示,直接删除。
一样平常的思绪时,假如栏目下有子栏目,大概栏目下已经有多篇文章,删除时应该提示该栏目不答应删除,大概至少应该给出伤害告诫,效果PHPCMS中是一不警惕,点删除栏目,然后弹出的JS中“是否要删除栏目”点了确定后,就一下子全部子栏目全部干掉了,这也意味着这些全部栏目下的文章也没办法表现了。固然可以根据PHPCMS中DATA目次下的栏目缓存中手动在数据库中找回这些栏目,但这个引起的贫苦自不待言了。
许多新技能员进来时,利用PHPCMS套站时,我都很明白的阐明,PHPCMS背景不答应做任何删除操纵,然而照旧常有由于误点击而导致几十个子栏目及栏目由于如许的误点击全部消散的环境。不外,落叶在新站规划时,一样平常都会修改PHPCMS栏目删除对应方法,删除前先查询栏目是否有子栏目,然后子栏目是否有文章,假如有需先删除文章,再删除子栏目,才气删除父栏目。
2.移动栏目后栏目关系字段没能精确更新,删除原栏目标父栏目,已经移走的子栏目会跟着被全部干掉
落叶不止一次发生过如许的杯具,原来B栏目是A栏目标子栏目,厥后想到B栏目独立出来做一级栏目更好,于是把B栏目修改为一级栏目,然后更新栏目缓存,修复栏目数据,心想这下应该没题目了,然后删掉A栏目,效果大杯具发生了,整个A栏目及B栏目以及B栏目以下的全部栏目跟着被删除了。
题目出现的缘故原由:PHPCMS无穷级分类每个分类中以arrchildid字段记载了全部子栏目标ID,当把B栏目称出后,PHPCMS步伐中没能对B栏目标原父栏目标相干字段正常更新,效果删除A栏目时,遍历arrchildid中的全部子栏目,括B栏目,一起全部干掉了。
3.添加栏目时缓存重复更新,栏目多后修改栏目生存时慢到不可明白的题目。
PHPCMS在编辑栏目后生存时,会主动调用修复栏目标repair()方法和更新全部栏目缓存的cache()方法,而且repair()方法中自己调用了一次cache()方法,效果导致的题目是每次编辑,栏目缓存都会全部更新两次,当栏目比力多时,每次都重新天生一次缓存,服从天然会低落,但一样平常这还不至于导致很显着的慢。更杯具的是,PHPCMS黄页模块的产物分类均存储在栏目表中,黄页意味着有大量的多级产物分类,如许一来,每次在编辑内容模子的某个栏目时,整个栏目表都会跟随着更新两次缓存,几百个栏目标缓存重新更新,而且写入方式是file_put_contents,效果的杯具是,编辑栏目后生存时不停卡在那边无论怎么点就是更新不动,关掉重新开,发现编辑的内容又是生存乐成的。
落叶不停的办理办法是,修改PHPCMS编辑栏目后调用的缓存更新方法,只让他更新所涉及到的栏目标缓存。如许的利益是暂时比力慢,不会花无用的时间去更新大量不必要更新的栏目标缓存。缺点是会导致相干联的栏目缓存没有实时更新。不外,这个不是题目,等栏目全部修改完成后,再在背景点一次更新全部缓存,这下慢就慢吧,点了不管,他自会更新完。
4.删除文章,静态页没有跟着删除。
一样平常的计划按理应该是删除文章的同时,对应删除的静态文件,但不知道为什么PHPCMS中没有如许,效果是许多文章已经删除了,但静态页照旧被收录了,而且都是老的一些无用的测试页面大概模板列换前的页面。这时间想将这些的页面去删除只有人工去找了。
5.内容页模板无法批量更换的题目。
许多时间,步伐上站设置好栏目等,计划美工处置惩罚模板界面,然后编辑同时发文章,然而由于模板还没有做出来,默认栏目设置中内容页模板都是选择的默认show.html模板,发的文章的Template字段中记载的也是show.html模板,然后计划那里模板做出来后,假如不消默认的show.html文件名,而是show_new.html模板时,原来应该可以直接栏目修改时,选择新模板,然后勾选“将这些修改全部应用到子栏目及内容页”,实现内容页模板更换的。信赖PHPCMS官方的本意也是云云的,可效果勾了也白勾,内容页模板原来是啥照旧啥,这时间不得不手动一篇文章一篇去修改,大概到数据库中更换。
6.列表页GET标签调用文章列表,分页链接跳到背景的题目。
这个题目出现的大概缘故原由是GET标签中的分页page参数,与列表页内置获取的分页参数产生辩论,天生静态时参数辩论,分页堕落。而利用默认TAG标签时不会有错。
B、常常碰到的“见鬼”的题目:
1.无论怎么改模板,天生页面,始终稳定的题目
这个是用户本身的题目,也是PHPCMS的题目。之以是说是用户本身的题目,那是由于他反复革新的页面并不是真这的最新天生的改变后的静态页面。之以是说是PHPCMS的题目,那是由于在某些环境下,修改栏目后,栏目URL规则主动在不知情的环境下(修改栏目时,URL规则选项是以TAB选项卡的方式展示,修改别的选项卡下信息时,会难留意URL规则地点的选项卡中的变革而直接生存),变会到默认的URL规则,然后用户天生页面后,新页面天生在默认URL规则对应的栏目下,而用户并没有全站天生,点击栏目导航访问时照旧旧页面,以是无论怎么革新也稳定的见鬼的题目。
这个题目当故意去编辑栏目举行测试时,难以复现,但是落叶之前一天多时,常常碰到,近来一些新的技能在处置惩罚PHPCMS是常常抓狂的仍旧是这个题目。上传模板,天生静态,革新革新再革新,就是稳定。
别的,另有许多更新后发现不变革的环境均因PHPCMS的缓存所至,无论是编辑体系设置照旧修必栏目后都需更新修复栏目数据,更新缓存才气见效,但不知道为什么,许多时间必要重新编辑好几遍,更新好频频后才气见效。
再就是URL更新了,更换URL规则后,数据库中记载的URL路径没有变,必要先更新URL后再天生静态才有用,但许多由于忘记而无论怎么天生也没用的。
2.模板可视化环境下碎片无法点击添加或修改的题目
这个是步伐员大概美工本身的题目,碎片变为可点击状态必要页面调用JQUERY框架,用户制作的模板假如没有加截这个框架大概相干页面没有加载这个框架,那就出现这个题目。
3.文章提交总是出现phpcms_search' is marked as crashed and should be repaired的题目。
这个题目就是phpcms_search数据表破坏了,落叶此前也是常常遇到了,如今编辑根本每隔一两天都会遇到这个表破坏而无法添加数据的题目。
这个表是为PHPCMS中实现全文搜刮和全文索引而计划的,每添加一篇文章,文章全文内容都会经分词处置惩罚后,存储到这个表中,写入操纵比力频仍,但是我不太清晰,为什么这个表会这么轻易破坏,频仍出奇的高。固然见责不怪时也就淡定了,由于PHPCMS背景自带的数据表修复功能照旧很强盛的。如今编辑在添加文章时发现数据表破坏,已经不找步伐员了,直接本身在背景体系工具里点数据库修复搞定。
楼主热帖

17

主题

6

帖子

26

积分

网站编辑

Rank: 8Rank: 8

积分
26