VS Code + PHP Intelephense + Remote-SSH + Symfony 3: ошибка неопределенного метода

Я открываю для себя VS Code, я полный новичок в этом редакторе кода, прежде чем я использовал Atom, но я хочу использовать VS Code, который выглядит очень круто!

У меня есть проект Symfony 3 на сервере Linux, и я хочу напрямую изменить его файлы, потому что это среда разработки. Я не хочу иметь локальную копию.

Итак, я установил VS Code на свой компьютер и загрузил расширения Remote-SSH и PHP Intelephense. После нескольких проблем мне удалось заставить его работать, но у меня много проблем внутри моих контроллеров, потому что PHP Intelephense не распознает много методов, хотя должен.

Я отключил встроенные функции языка PHP VS Code.

Например, вот несколько неопределенных методов:

Не распознает $repository->createQueryBuilder() или же $em->createQuery() или пользовательские функции внутри Repositoryкласс сущностей. Он не распознает некоторые функции, определенные внутри самого контроллера, хотя они определены правильно. Он не распознает базовые методы репозитория Symfony, такие как $repo->findOneByProperty(), и т.д.

Так что в моих файлах полно ошибок, а все в норме! ^^

Кто-нибудь может мне помочь? Если Remote-SSH - не лучшее расширение, может, посоветуете мне другое? То же самое и с Интелефенсом?

1 ответ

Решение

Единственное решение, которое я нашел, - разместить проект локально и использовать SFTP расширение (от liximomo) для загрузки файлов на сервер после их сохранения. PHP Intelephense хорошо работает с этой конфигурацией. Symfony for VScode расширение (от TheNouillet) тоже может быть полезным.

settings.json

"emmet.includeLanguages": {
    "twig": "html"
},
"symfony-vscode.phpExecutablePath": "C:\\wamp64\\bin\\php\\php5.6.16\\php.exe",
"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true,
    "**/vendor/**": true
},
"editor.quickSuggestions": {
    "other": true,
    "comments": true,
    "strings": true
},
"php.suggest.basic": false,
"intelephense.files.exclude": [
    "**/.git/**",
    "**/.svn/**",
    "**/.hg/**",
    "**/CVS/**",
    "**/.DS_Store/**",
    "**/node_modules/**",
    "**/bower_components/**",
    "**/vendor/**/{Test,test,Tests,tests}/**/*Test.php"
],
"intelephense.diagnostics.undefinedMethods": false
Другие вопросы по тегам