我最近在開發(fā)一個(gè)wordpress插件,使用了psalm進(jìn)行靜態(tài)分析。由于插件依賴于WordPress核心代碼,psalm在分析過程中總是報(bào)錯(cuò),提示找不到各種wordpress函數(shù)和類。這導(dǎo)致我的代碼審查過程非常低效,許多潛在的錯(cuò)誤都無法被及時(shí)發(fā)現(xiàn)。我嘗試了各種方法,例如調(diào)整psalm的配置,甚至嘗試直接忽略部分錯(cuò)誤,但這些方法都治標(biāo)不治本,問題依然存在。
在一番搜索之后,我發(fā)現(xiàn)了giacocorsiglia/wordpress-stubs這個(gè)寶藏庫。它提供了WordPress核心代碼的聲明存根,讓靜態(tài)分析工具能夠“理解”WordPress的API,從而避免因?yàn)檎也坏胶瘮?shù)或類而報(bào)錯(cuò)。
安裝這個(gè)庫非常簡(jiǎn)單,只需要使用composer:
composer require --dev giacocorsiglia/wordpress-stubs
安裝完成后,你需要更新Psalm的配置文件,添加如下內(nèi)容:
<stubs></p><pre class="brush:php;toolbar:false"><file name="vendor/giacocorsiglia/wordpress-stubs/wordpress-stubs.php" />
同時(shí),確保你的Psalm配置文件中
配置完成后,再次運(yùn)行Psalm,你會(huì)發(fā)現(xiàn)之前的錯(cuò)誤消失了!Psalm能夠正確地識(shí)別WordPress函數(shù)和類,并對(duì)我的插件代碼進(jìn)行更準(zhǔn)確的分析,找出更多潛在的bug。這極大地提高了我的開發(fā)效率和代碼質(zhì)量。
此外,giacocorsiglia/wordpress-stubs 不僅僅適用于Psalm,它也能夠提升其他ide的代碼補(bǔ)全功能。例如,在使用vscode和Intelephense擴(kuò)展時(shí),這個(gè)庫能夠提供更準(zhǔn)確的代碼提示,減少代碼編寫錯(cuò)誤。 雖然我的Intelephense已經(jīng)能很好地解析WordPress核心代碼,但使用這個(gè)庫仍然能提升代碼提示的準(zhǔn)確性和速度。
總而言之,giacocorsiglia/wordpress-stubs是一個(gè)非常實(shí)用的工具,它解決了wordpress插件和主題開發(fā)中一個(gè)常見的痛點(diǎn):靜態(tài)分析的困難。通過使用這個(gè)庫,我們可以顯著提升代碼質(zhì)量,減少bug,并提高開發(fā)效率。 強(qiáng)烈推薦給所有WordPress開發(fā)者! 記住,雖然這個(gè)庫非常有用,但它只是輔助工具,并不能替代對(duì)WordPress核心代碼的理解和規(guī)范的編碼實(shí)踐。