问题描述
我在CakePHP 2应用程序中的任何地方都有一些帮助函数。它们用红色下划线并在控制台中报告为“未定义的功能”。我知道我可以ignore the errors,但是我希望它可以继续正常运行,尤其是如果我可以设法在模型中使用alt单击来使用它。
"intelephense.stubs": [
"apache","bcmath","bz2","calendar","com_dotnet","Core","ctype","curl","date","dba","dom","enchant","exif","FFI","fileinfo","filter","fpm","ftp","gd","gettext","gmp","hash","iconv","imap","intl","json","ldap","libxml","mbstring","Meta","MysqLi","oci8","odbc","openssl","pcntl","pcre","PDO","pdo_ibm","pdo_MysqL","pdo_pgsql","pdo_sqlite","pgsql","Phar","posix","pspell","readline","Reflection","session","shmop","SimpleXML","snmp","soap","sockets","sodium","SPL","sqlite3","standard","superglobals","sysvmsg","sysvsem","sysvshm","tidy","tokenizer","xml","xmlreader","xmlrpc","xmlwriter","xsl","Zend OPcache","zip","zlib","wordpress","./Config/core.PHP"
],
据我了解,允许将自定义.PHP文件作为存根导入,以便Intelephense能够识别它们。但是,我输入的任何路径都行不通。我已经尝试了所有我能想到的:
我如何才能让Intelephense识别core.PHP,它实际上仅包含一堆设置和一些定义为例如以下内容的辅助函数:
// just an alias for json decode
function jdec($json) {
return json_decode($json,1,512,JSON_INVALID_UTF8_IGnorE);
}
注意:我确信我对Intelephense的困难不是 与CakePHP 2框架严格相关。
解决方法
我认为您需要将CakePHP 2位置路径添加到intelephense.environment.includePaths
设置中。
这是我的类似情况下工作区配置的示例。我的工作区之外包括库,因此我指定了类似的路径:
"intelephense.environment.includePaths": [
"/path/to/lib1","/path/to/lib2"
]
此后,Intelephense将正确索引包含库中的所有功能,并且不再标记为undefined
。