Claude Code'un php-lsp plugin'i .lsp.json olmadan gelir. Bu guide, Intelephense'i
Laravel icin optimal sekilde yapilandirir. Sonuc: gercek hatalar yakalanir, false
positive olmaz.
Claude Code, LSP'ye rootUri olarak primary working directory'yi gonderir. Eger bu
bir Flutter/Node/Go projesi ise, Intelephense PHP dosyalarini bulamaz ve her yerde
P1009 "Undefined type" uretir. Cozum: workspaceFolder field'i ile dogru root'u set et.
npm install -g intelephense
# Laravel projesinde:
composer require --dev barryvdh/laravel-ide-helpercd /path/to/laravel-project
php artisan ide-helper:generate # _ide_helper.php — facade class stubs (33K+ satir)
php artisan ide-helper:models -N # _ide_helper_models.php — model magic props
php artisan ide-helper:meta # .phpstorm.meta.php — container resolutionBu 3 dosya Intelephense'in facade, model ve container type'larini cozmesini saglar. Repo'ya commit et — CI ve diger devler de faydalansin.
# Claude Code icinde:
/plugin install php-lsp@claude-plugins-official
/reload-pluginsPlugin .lsp.json olmadan gelir — Intelephense'e hicbir config gonderilmez.
Manuel eklenmeli.
Dosya: ~/.claude/plugins/cache/claude-plugins-official/php-lsp/1.0.0/.lsp.json
KRITIK: workspaceFolder'i Laravel projenin absolute root path'ine set et.
{
"php": {
"command": "intelephense",
"args": ["--stdio"],
"extensionToLanguage": {
".php": "php"
},
"transport": "stdio",
"workspaceFolder": "/ABSOLUTE/PATH/TO/LARAVEL/PROJECT",
"initializationOptions": {
"storagePath": "/tmp/intelephense",
"clearCache": true
},
"settings": {
"intelephense": {
"environment": {
"phpVersion": "8.4.0",
"includePaths": []
},
"files": {
"maxSize": 5000000,
"exclude": [
"**/.git/**",
"**/.svn/**",
"**/node_modules/**",
"**/vendor/**/{Tests,tests}/**",
"**/.history/**"
]
},
"diagnostics": {
"enable": true,
"undefinedTypes": true,
"undefinedFunctions": true,
"undefinedConstants": true,
"undefinedClassConstants": true,
"undefinedMethods": true,
"undefinedProperties": false,
"undefinedVariables": true
},
"stubs": [
"apache", "bcmath", "bz2", "calendar",
"Core", "ctype", "curl", "date", "dba", "dom",
"exif", "fileinfo", "filter", "ftp", "gd", "hash",
"iconv", "imap", "intl", "json", "ldap",
"libxml", "mbstring", "meta", "mysqli",
"mysqlnd", "openssl", "pcntl", "pcre",
"PDO", "pdo_mysql", "pdo_pgsql", "pdo_sqlite",
"pgsql", "Phar", "posix", "readline",
"redis", "Reflection", "regex", "session", "shmop",
"SimpleXML", "soap", "sockets", "sodium", "SPL",
"sqlite3", "standard", "superglobals",
"tidy", "tokenizer", "xml",
"xmlreader", "xmlwriter", "xsl", "Zend OPcache",
"zip", "zlib"
]
}
},
"startupTimeout": 60000,
"maxRestarts": 3
}
}# Eski index'i temizle — bu olmadan eski bozuk index kalir
rm -rf /tmp/intelephense
# Claude Code icinde:
/reload-pluginsIlk reload'da Intelephense 30-60sn indexleme yapar (vendor/ + app/ + _ide_helper.php).
Indexleme tamamlandiktan sonra .lsp.json'daki clearCache'i false yap —
her restart'ta tekrar indexlememesi icin.
| Setting | Value | Why |
|---|---|---|
workspaceFolder |
Laravel root path | EN KRITIK — olmadan CWD kullanilir, yanlis dizin indexlenir |
phpVersion |
"8.4.0" |
composer.json'daki PHP version ile esle |
files.maxSize |
5000000 (5MB) |
_ide_helper.php 33K+ satir, default 1MB yetmez |
undefinedProperties |
false |
Eloquent magic __get/__set false positive uretir |
undefinedTypes |
true |
Gercek hatalari yakala — _ide_helper.php facade'lari cozer |
includePaths |
[] |
vendor/ zaten workspace icinde, cift indexleme onlenir |
stubs |
redis dahil |
Laravel Cache/Queue Redis driver icin gerekli |
clearCache |
true ilk seferde |
Eski yanlis index'i temizler, sonra false yap |
workspaceFolder tek bir absolute path alir ve plugin cache user-global.
Farkli Laravel projeleri icin: .lsp.json'daki workspaceFolder'i degistirip
/reload-plugins yap. Veya Claude Code'u dogrudan Laravel dizininden baslat —
bu durumda workspaceFolder field'ina gerek kalmaz.
| Sorun | Cozum |
|---|---|
| P1009 tum class'larda | workspaceFolder yanlis veya set edilmemis |
| P1009 sadece facade'larda | _ide_helper.php uretilmemis veya maxSize < 5MB |
| Plugin update sonrasi bozulma | .lsp.json silinir — tekrar Step 3 |
| config/ dosyalarinda env() P1010 | Normal — config dosyalari namespace disinda |
| Ilk acilista yavas | Indexleme suruyor, 30-60sn bekle |
| Iki PHP LSP cakismasi | phpactor varsa kaldir: /plugin uninstall phpactor |
| Hicbir diagnostic gelmiyor | intelephense binary yok: npm install -g intelephense |