發(fā)布時(shí)間:2020-03-07
欄目:帝國(guó)新聞
落葉之前在CHINAZ發(fā)布了一系列關(guān)于PHPCMS設計能力、織夢(mèng)及帝國(guó)這三款CMS對(duì)比分析文章,在對(duì)比分析中出現(xiàn)過(guò)對(duì)PHPCMS部分功能和架構(gòu)設(shè)計(jì)方式明顯的偏好深入開展,一些站長(zhǎng)朋友們?cè)谠u(píng)論中多提到落葉在為PHPCMS捉刀的質(zhì)疑更為一致。本文中落葉詳細(xì)分析下PHPCMS2008中一直存在的并且在sp4最終版中仍然存在的嚴(yán)重甚至低級(jí)的問(wèn)題及一些使用中遇見(jiàn)的“見(jiàn)鬼”的問(wèn)題。
A技術的開發、低級(jí)問(wèn)題/BUG:
1.刪除欄目時(shí)所有子欄目和子欄目下所有文章不作任何提示至關重要,直接刪除。
一般的思路時(shí)服務品質,如果欄目下有子欄目,或者欄目下已經(jīng)有多篇文章組成部分,刪除時(shí)應(yīng)該提示該欄目不允許刪除影響,或者至少應(yīng)該給出危險(xiǎn)警告,結(jié)果PHPCMS中是一不小心的過程中,點(diǎn)刪除欄目發展契機,然后彈出的JS中“是否要?jiǎng)h除欄目”點(diǎn)了確定后,就一下子所有子欄目全部干掉了過程中,這也意味著這些所有欄目下的文章也沒(méi)辦法顯示了去突破。雖然可以根據(jù)PHPCMS中DATA目錄下的欄目緩存中手動(dòng)在數(shù)據(jù)庫(kù)中找回這些欄目,但這個(gè)引起的麻煩自不待言了。
很多新技術(shù)員進(jìn)來(lái)時(shí)智能設備,使用PHPCMS套站時(shí)不可缺少,我都很明確的說(shuō)明,PHPCMS后臺(tái)不允許做任何刪除操作特點,然而還是常有因?yàn)檎`點(diǎn)擊而導(dǎo)致幾十個(gè)子欄目及欄目因?yàn)檫@樣的誤點(diǎn)擊全部消失的情況積極回應。不過(guò),落葉在新站規(guī)劃時(shí)又進了一步,一般都會(huì)修改PHPCMS欄目刪除對(duì)應(yīng)方法多種場景,刪除前先查詢欄目是否有子欄目,然后子欄目是否有文章規劃,如果有需先刪除文章擴大公共數據,再刪除子欄目,才能刪除父欄目帶動擴大。
2.移動(dòng)欄目后欄目關(guān)系字段沒(méi)能正確更新核心技術體系,刪除原欄目的父欄目,已經(jīng)移走的子欄目會(huì)跟著被全部干掉
落葉不止一次發(fā)生過(guò)這樣的杯具性能,原來(lái)B欄目是A欄目的子欄目初步建立,后來(lái)想到B欄目獨(dú)立出來(lái)做一級(jí)欄目更好強大的功能,于是把B欄目修改為一級(jí)欄目等特點,然后更新欄目緩存改革創新,修復(fù)欄目數(shù)據(jù)服務延伸,心想這下應(yīng)該沒(méi)問(wèn)題了帝國(guó)cms批量助手結構不合理,然后刪掉A欄目融合,結(jié)果大杯具發(fā)生了喜愛,整個(gè)A欄目及B欄目以及B欄目以下的所有欄目跟著被刪除了攻堅克難。
問(wèn)題出現(xiàn)的原因:PHPCMS無(wú)限級(jí)分類每個(gè)分類中以arrchildid字段記錄了所有子欄目的ID最新,當(dāng)把B欄目稱出后帝國(guó)cms批量更新技術創新,PHPCMS程序中沒(méi)能對(duì)B欄目的原父欄目的相關(guān)字段正常更新,結(jié)果刪除A欄目時(shí)重要作用,遍歷arrchildid中的所有子欄目持續向好,括B欄目,一起全部干掉了發展基礎。
3.添加欄目時(shí)緩存重復(fù)更新兩個角度入手,欄目多后修改欄目保存時(shí)慢到不可理解的問(wèn)題。
PHPCMS在編輯欄目后保存時(shí)帝國(guó)cms批量添加產(chǎn)品同期,會(huì)自動(dòng)調(diào)用修復(fù)欄目的repair()方法和更新所有欄目緩存的cache()方法生產效率,并且repair()方法中本身調(diào)用了一次cache()方法,結(jié)果導(dǎo)致的問(wèn)題是每次編輯效果,欄目緩存都會(huì)全部更新兩次使用,當(dāng)欄目比較多時(shí)合規意識,每次都重新生成一次緩存,效率自然會(huì)降低有效性,但一般這還不至于導(dǎo)致很明顯的慢創新內容。更杯具的是,PHPCMS黃頁(yè)模塊的產(chǎn)品分類均存儲(chǔ)在欄目表中力量,黃頁(yè)意味著有大量的多級(jí)產(chǎn)品分類我有所應,這樣一來(lái),每次在編輯內(nèi)容模型的某個(gè)欄目時(shí)深入實施,整個(gè)欄目表都會(huì)跟隨著更新兩次緩存至關重要,幾百個(gè)欄目的緩存重新更新,并且寫(xiě)入方式是file_put_contents效果,結(jié)果的杯具是有所應,編輯欄目后保存時(shí)一直卡在那里無(wú)論怎么點(diǎn)就是更新不動(dòng),關(guān)掉重新開(kāi)合作關系,發(fā)現(xiàn)編輯的內(nèi)容又是保存成功的著力提升。
落葉一直的解決辦法是,修改PHPCMS編輯欄目后調(diào)用的緩存更新方法傳遞,只讓他更新所涉及到的欄目的緩存融合。這樣的好處是臨時(shí)比較慢,不會(huì)花無(wú)用的時(shí)間去更新大量不需要更新的欄目的緩存相關性。缺點(diǎn)是會(huì)導(dǎo)致相關(guān)聯(lián)的欄目緩存沒(méi)有及時(shí)更新完成的事情。不過(guò),這個(gè)不是問(wèn)題穩定,等欄目全部修改完成后改造層面,再在后臺(tái)點(diǎn)一次更新所有緩存,這下慢就慢吧優勢與挑戰,點(diǎn)了不管經驗分享,他自會(huì)更新完。
4.刪除文章解決問題,靜態(tài)頁(yè)沒(méi)有跟著刪除系列。
一般的設(shè)計(jì)按理應(yīng)該是刪除文章的同時(shí),對(duì)應(yīng)刪除的靜態(tài)文件相互配合,但不知道為什么PHPCMS中沒(méi)有這樣空間載體,結(jié)果是很多文章已經(jīng)刪除了,但靜態(tài)頁(yè)還是被收錄了相對簡便,并且都是老的一些無(wú)用的測(cè)試頁(yè)面或者模板列換前的頁(yè)面。這時(shí)候想將這些的頁(yè)面去刪除只有人工去找了流程。
5.內(nèi)容頁(yè)模板無(wú)法批量更換的問(wèn)題合作。
很多時(shí)候勃勃生機,程序上站設(shè)置好欄目等,設(shè)計(jì)美工處理模板界面極致用戶體驗,然后編輯同時(shí)發(fā)文章提供有力支撐,然而因?yàn)槟0暹€沒(méi)有做出來(lái),默認(rèn)欄目設(shè)置中內(nèi)容頁(yè)模板都是選擇的默認(rèn) show.html模板建議,發(fā)的文章的Template字段中記錄的也是show.html模板品率,然后設(shè)計(jì)那邊模板做出來(lái)后,如果不用默認(rèn)的 show.html文件名不斷發展,而是show_new.html模板時(shí)積極影響,本來(lái)應(yīng)該可以直接欄目修改時(shí),選擇新模板緊密協作,然后勾選“將這些修改全部應(yīng)用到子欄目及內(nèi)容頁(yè)”越來越重要,實(shí)現(xiàn)內(nèi)容頁(yè)模板更換的。相信PHPCMS官方的本意也是如此的發揮重要作用,可結(jié)果勾了也白勾醒悟,內(nèi)容頁(yè)模板原來(lái)是啥還是啥,這時(shí)候不得不手動(dòng)一篇文章一篇去修改帝國(guó)cms批量更新文章高質量,或者到數(shù)據(jù)庫(kù)中替換也逐步提升。
6.列表頁(yè)GET標(biāo)簽調(diào)用文章列表,分頁(yè)鏈接跳到后臺(tái)的問(wèn)題註入了新的力量。
這個(gè)問(wèn)題出現(xiàn)的大概原因是GET標(biāo)簽中的分頁(yè)page參數(shù)重要的作用,與列表頁(yè)內(nèi)置獲取的分頁(yè)參數(shù)產(chǎn)生沖突,生成靜態(tài)時(shí)參數(shù)沖突特點,分頁(yè)出錯(cuò)提高鍛煉。而使用默認(rèn)TAG標(biāo)簽時(shí)不會(huì)有錯(cuò)。
B凝聚力量、經(jīng)常遇到的“見(jiàn)鬼”的問(wèn)題:
1.無(wú)論怎么改模板有所提升,生成頁(yè)面,始終不變的問(wèn)題
這個(gè)是用戶自己的問(wèn)題新的力量,也是PHPCMS的問(wèn)題先進水平。之所以說(shuō)是用戶自己的問(wèn)題,那是因?yàn)樗磸?fù)刷新的頁(yè)面并不是真這的最新生成的改變后的靜態(tài)頁(yè)面全面展示。之所以說(shuō)是PHPCMS的問(wèn)題重要平臺,那是因?yàn)樵谀承┣闆r下,修改欄目后核心技術,欄目URL規(guī)則自動(dòng)在不知情的情況下(修改欄目時(shí)應用提升,URL規(guī)則選項(xiàng)是以TAB選項(xiàng)卡的方式展示,修改其它選項(xiàng)卡下信息時(shí)創造性,會(huì)難注意URL規(guī)則所在的選項(xiàng)卡中的變化而直接保存)發展的關鍵,變會(huì)到默認(rèn)的URL規(guī)則道路,然后用戶生成頁(yè)面后,新頁(yè)面生成在默認(rèn) URL規(guī)則對(duì)應(yīng)的欄目下真諦所在,而用戶并沒(méi)有全站生成指導,點(diǎn)擊欄目導(dǎo)航訪問(wèn)時(shí)還是舊頁(yè)面,所以無(wú)論怎么刷新也不變的見(jiàn)鬼的問(wèn)題充分。
這個(gè)問(wèn)題當(dāng)有意去編輯欄目進(jìn)行測(cè)試時(shí)進一步完善,難以復(fù)現(xiàn),但是落葉之前一天多時(shí)競爭力,經(jīng)常遇到調整推進,最近一些新的技術(shù)在處理PHPCMS是經(jīng)常抓狂的仍然是這個(gè)問(wèn)題。上傳模板兩個角度入手,生成靜態(tài)建強保護,刷新刷新再刷新,就是不變生產效率。
另外使命責任,還有很多更新后發(fā)現(xiàn)不變化的情況均因PHPCMS的緩存所至,無(wú)論是編輯系統(tǒng)設(shè)置還是修必欄目后都需更新修復(fù)欄目數(shù)據(jù)使用,更新緩存才能生效合規意識,但不知道為什么,很多時(shí)候需要重新編輯好幾遍主要抓手,更新好幾次后才能生效體製。
再就是URL更新了,更換URL規(guī)則后創新科技,數(shù)據(jù)庫(kù)中記錄的URL路徑?jīng)]有變服務延伸,需要先更新URL后再生成靜態(tài)才有效,但很多由于忘掉而無(wú)論怎么生成也沒(méi)用的具有重要意義。
2.模板可視化情況下碎片無(wú)法點(diǎn)擊添加或修改的問(wèn)題
這個(gè)是程序員或者美工自己的問(wèn)題進一步,碎片變?yōu)榭牲c(diǎn)擊狀態(tài)需要頁(yè)面調(diào)用JQUERY框架,用戶制作的模板如果沒(méi)有加截這個(gè)框架或者相關(guān)頁(yè)面沒(méi)有加載這個(gè)框架強大的功能,那就出現(xiàn)這個(gè)問(wèn)題實際需求。
3.文章提交總是出現(xiàn)phpcms_search' is marked as crashed and should be repaired的問(wèn)題。
這個(gè)問(wèn)題就是phpcms_search數(shù)據(jù)表?yè)p壞了優勢,落葉此前也是經(jīng)常碰到了善謀新篇,現(xiàn)在編輯基本每隔一兩天都會(huì)碰到這個(gè)表?yè)p壞而無(wú)法添加數(shù)據(jù)的問(wèn)題。
這個(gè)表是為PHPCMS中實(shí)現(xiàn)全文搜索和全文索引而設(shè)計(jì)的便利性,每添加一篇文章方法,文章全文內(nèi)容都會(huì)經(jīng)分詞處理后,存儲(chǔ)到這個(gè)表中,寫(xiě)入操作比較頻繁切實把製度,但是我不太清楚統籌,為什么這個(gè)表會(huì)這么容易損壞,頻繁出奇的高協同控製。當(dāng)然見(jiàn)怪不怪時(shí)也就淡定了,因?yàn)镻HPCMS后臺(tái)自帶的數(shù)據(jù)表修復(fù)功能還是很強(qiáng)大的∑焚|,F(xiàn)在編輯在添加文章時(shí)發(fā)現(xiàn)數(shù)據(jù)表?yè)p壞利用好,已經(jīng)不找程序員了,直接自己在后臺(tái)系統(tǒng)工具里點(diǎn)數(shù)據(jù)庫(kù)修復(fù)搞定解決問題。
<文章地址:http://www.61py.com/article/diguo/dgPHPCMSjzmdbsePHPCMSdjBUGwtfx.html

- 1選用Phpcms v9建站 優(yōu)化之后流量飛起來(lái)
- 2如何選擇CMS 1所見(jiàn)即所得的編譯器
- 3DEDECMS轉(zhuǎn)向帝國(guó)CMS之異同
- 4PHPCMS中$description格式化的方法
- 5帝國(guó)CMS結(jié)合項(xiàng)列表屬性篩選實(shí)例教程
- 6疑是帝國(guó)CMS(EmpireCMS v 6.0)最新BUG
- 7專訪帝國(guó)軟件的創(chuàng)造者:仍然在路上的80后
- 8帝國(guó)5.0和discuz6.1整合教程
- 9帝國(guó)網(wǎng)站管理系統(tǒng)CMS 7.0正式版發(fā)布
- 10專訪ECMS作者王猛 成功的人應(yīng)該耐得住寂寞