Заглушка 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 распознал их. Однако ни один путь, который я выберу, не будет работать. Я перепробовал все, что мог придумать:

  1. C: / wamp64 / www / MY_APP / приложение /
  2. ../App/Config
  3. просто не добавлять.php, просто не добавлять файл вообще
  4. Так много всего!

Как мне заставить 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.

Другие вопросы по тегам