dev-tools
14000 yıldız

Laravel IDE Helper

Geliştirici: Barry vd. Heuvel

PhpStorm ve VS Code gibi editörler için Eloquent modellerine ve Facade'lara otomatik tamamlama desteği sağlayan araç.

Kurulum

Composer
composer require barryvdh/laravel-ide-helper

Dokümantasyon & Kullanım

Markdown

Laravel IDE Helper

Laravel IDE Helper, PhpStorm, VS Code (Intelephense / PHP Tools) ve diğer modern kod editörlerinde Laravel'in dinamik/sihirli metotları (Facade, Eloquent Model sütunları, Macro ve Scope'lar) için kusursuz kod tamamlama (autocomplete), PHPDoc etiketleri ve tür ipuçları (type-hinting) sağlayan temel bir geliştirici aracıdır.

Neden Tercih Edilmeli?

  • Hatasız Kod Tamamlama: Eloquent modellerindeki sütunlar, ilişkiler ve dinamik scope'lar editörde doğrudan tanınır.
  • Facade Desteği: Route::get(), Cache::remember() gibi Facade çağrılarında statik analiz hatalarını giderir.
  • Model PHPDoc Üretimi: Veritabanı tablolarını okuyarak her modelin başına @property açıklamaları ekler.
  • Otomasyon ve Composer Hook: composer.json dosyasına eklenerek migration veya paket güncellemelerinden sonra otomatik çalıştırılabilir.
  • PHPStorm Meta Desteği: Konteyner çözümlemelerinde app('user.service') gibi nesnelerin tipini tanır.

Kurulum

Geliştirme ortamı bağımlılığı (--dev) olarak yükleyin:

composer require barryvdh/laravel-ide-helper --dev

Yapılandırma dosyasını yayınlamak isterseniz:

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

Temel Kullanım

1. Facade'lar İçin Kod Tamamlama

Uygulamanızdaki tüm Facade'ları tarayarak kök dizinde _ide_helper.php dosyası oluşturur:

php artisan ide-helper:generate

2. Eloquent Modelleri İçin PHPDoc Oluşturma

Veritabanı şemasını tarayıp model dosyalarının başına uygun @property ve metot açıklamalarını yazar:

php artisan ide-helper:models --nowrite

Eğer doğrudan modellerin içine yazmasını isterseniz:

php artisan ide-helper:models --write

Üretilen model örneği:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * App\Models\User
 *
 * @property int $id
 * @property string $name
 * @property string $email
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Post> $posts
 * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value)
 * @mixin \Eloquent
 */
class User extends Model
{
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

3. PhpStorm Meta Dosyası Üretme

Service Container app(...) çözümlemeleri için:

php artisan ide-helper:meta

Otomatik Çalıştırma (Composer Scripts)

composer.json dosyanızdaki scripts alanına ekleyerek her güncellemede otomatik tetikleyebilirsiniz:

"scripts": {
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "@php artisan ide-helper:generate",
        "@php artisan ide-helper:meta"
    ]
}