Заглушка Intelephense не загружается в CakePHP 2
У меня есть несколько вспомогательных функций, которые я использую везде в приложении CakePHP 2. Они подчеркнуты красным и отображаются в консоли как "неопределенные функции". Я знаю, что могу просто игнорировать ошибки, но я бы хотел, чтобы он работал должным образом в будущем, особенно если мне удастся заставить работать с ним Alt-click для моделей.
В моем VS Code
settings.json
, У меня есть следующее:
"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 распознал их. Однако ни один путь, который я выберу, не будет работать. Я перепробовал все, что мог придумать:
- C: / wamp64 / www / MY_APP / приложение /
- ../App/Config
- просто не добавлять.php, просто не добавлять файл вообще
- Так много всего!
Как мне заставить 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.
1 ответ
Я думаю, вам нужно добавить путь к местоположению CakePHP 2 в
intelephense.environment.includePaths
настройка.
Вот пример конфигурации моей рабочей области для аналогичной ситуации. У меня есть библиотеки, которые я включаю за пределами моей рабочей области, поэтому я указываю пути к таким, как это:
"intelephense.environment.includePaths": [
"/path/to/lib1",
"/path/to/lib2"
]
После этого все функции из включенных библиотек правильно индексируются Intelephense и больше не помечаются как
undefined
.