PHPackages                             erdikoroglu/laravel-service-scaffold - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. erdikoroglu/laravel-service-scaffold

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

erdikoroglu/laravel-service-scaffold
====================================

Laravel için otomatik Model, Repository, Service scaffold komutu.

v2.0.1(6mo ago)04MITPHPPHP ^8.1

Since Nov 3Pushed 6mo agoCompare

[ Source](https://github.com/erdikoroglu/LaravelServiceScaffold)[ Packagist](https://packagist.org/packages/erdikoroglu/laravel-service-scaffold)[ RSS](/packages/erdikoroglu-laravel-service-scaffold/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (6)Used By (0)

Laravel Service Scaffold
========================

[](#laravel-service-scaffold)

[![Latest Version on Packagist](https://camo.githubusercontent.com/22dbab68b3938f60dc444ffccb3cb9d53d80eb4e22256584be73768799be46a1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f657264696b6f726f676c752f6c61726176656c2d736572766963652d73636166666f6c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/erdikoroglu/laravel-service-scaffold)[![Total Downloads](https://camo.githubusercontent.com/d02d1ac12517b0cdffef8aef130942c69a3151118a331995056a238031dda17f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f657264696b6f726f676c752f6c61726176656c2d736572766963652d73636166666f6c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/erdikoroglu/laravel-service-scaffold)

Laravel projelerinizde hızlı bir şekilde tam bir servis katmanı (Service Layer) oluşturmanızı sağlayan interaktif bir Artisan komutu. Bu paket, Repository Pattern'ını temel alarak Model, Migration, Factory, Interface, Repository, Service sınıfı ve çeşitli Form Request'ler (Store, Update, Delete, Search, Show, Restore, Toggle) otomatik olarak üretir. Ayrıca, AppServiceProvider'a binding ekleyerek dependency injection'ı kolaylaştırır.

Bu araç, veritabanı tablosu tasarımı sırasında interaktif prompt'lar ile sütun eklemenize izin verir. SoftDeletes desteği opsiyonel olarak eklenir ve model'in `fillable` alanları otomatik güncellenir.

Özellikler
----------

[](#özellikler)

- **Interaktif Sütun Oluşturma**: Sütun adı, tipi (string, integer, boolean vb.), uzunluk, nullable/unique varsayılan değer ayarları için adım adım rehber.
- **Tam Scaffolding**: Aşağıdaki bileşenleri otomatik üretir:
    - Model (örneğin: `app/Models/Test/Test.php`)
    - Factory (`database/factories/Test/TestFactory.php`)
    - Migration (`database/migrations/YYYY_MM_DD_HHMMSS_create_tests_table.php`)
    - Interface (`app/Repositories/Contracts/TestInterface.php`)
    - Repository (`app/Repositories/TestRepository.php`)
    - Service (`app/Services/TestService.php`)
    - Form Request'ler:
        - `TestStoreRequest`
        - `TestUpdateRequest`
        - `TestDeleteRequest`
        - `TestSearchRequest`
        - `TestShowRequest`
        - `TestRestoreRequest`
        - `TestToggleRequest`
- **SoftDeletes Desteği**: Opsiyonel olarak `deleted_at` sütunu ve trait eklenir.
- **Dependency Injection**: AppServiceProvider'a otomatik binding (`'Test' => TestService::class`).
- **Esneklik**: Çıkış için boş bırakma seçenekleri, varsayılan değerler ve birden fazla sütun ekleme.
- **Dil Desteği**: Komut mesajları Türkçe (paket geliştiricisi tercihiyle).

Kurulum
-------

[](#kurulum)

1. Composer ile paketi yükleyin:

    ```
    composer require erdikoroglu/laravel-service-scaffold
    ```
2. Laravel 10+ sürümlerinde paket otomatik olarak service provider'ı keşfedilir (auto-discovery). Eğer manuel kayıt gerekiyorsa (eski sürümlerde), `config/app.php`'ye ekleyin:

    ```
    'providers' => [
        // ...
        Erdikoroglu\LaravelServiceScaffold\ServiceScaffoldServiceProvider::class,
    ],
    ```
3. Komut artık Artisan menüsünde görünür: `php artisan make:service`.

Kullanım
--------

[](#kullanım)

Komutu şu şekilde çalıştırın:

```
php artisan make:service Test
```

### Adım Adım Süreç

[](#adım-adım-süreç)

Komut çalıştırıldığında interaktif bir wizard başlar:

1. **Model Oluşturma**: Model, Factory ve Migration otomatik oluşturulur.

    - Örnek çıktı: ```
        INFO  Model [app/Models/Test/Test.php] created successfully.
        INFO  Factory [database/factories/Test/TestFactory.php] created successfully.
        INFO  Migration [database/migrations/2025_11_03_185741_create_tests_table.php] created successfully.
        ✅ Model ve migration oluşturuldu: Test

        ```
2. **Sütun Tanımlama**:

    - **Sütun adı**: Sütun adını girin (boş bırakırsanız çıkış).

        ```
        Sütun adı (boş bırak çıkış): > title

        ```
    - **Sütun tipi**: Listeden seçin (0-16 arası numaralar):

        SeçenekTipAçıklama0idOtomatik artan primary key1uuidUUID primary key2stringVARCHAR (varsayılan)3textTEXT4longTextLONGTEXT5integerINTEGER6bigIntegerBIGINT7tinyIntegerTINYINT8booleanBOOLEAN9decimalDECIMAL10floatFLOAT11doubleDOUBLE12dateDATE13datetimeDATETIME14timestampTIMESTAMP15jsonJSON16foreignIdForeign ID (unsignedBigInteger)Örnek:

        ```
        Sütun tipi [string]: > 2  (string için)

        ```
    - **Uzunluk**: Varsayılan 255 (string için), Enter ile atlayın.

        ```
        Uzunluk (varsayılan: 255) [255]: >

        ```
    - **Nullable?**: `yes/no` (varsayılan: no).
    - **Unique?**: `yes/no` (varsayılan: no).
    - **Varsayılan Değer?**: `yes/no` (varsayılan: no). Eğer yes ise değer girin.
    - **Başka Sütun?**: `yes/no` (varsayılan: yes). No ile sütun eklemeyi bitirin.
3. **SoftDeletes**: `deleted_at` sütunu ve trait eklemek için `yes/no` (varsayılan: yes).

    ```
    🕊️ SoftDeletes sütunu (deleted_at) eklensin mi? (yes/no) [yes]: > yes

    ```
4. **Sonuç**: Migration güncellenir, model'e fillable ve SoftDeletes trait eklenir, Interface/Repository/Service oluşturulur, Request'ler üretilir ve AppServiceProvider'a binding eklenir.

    - Örnek çıktı: ```
        🧩 Migration güncellendi: 2025_11_03_185741_create_tests_table.php
        🕊️ SoftDeletes trait eklendi: Models/Test/Test.php
        🛡️ Model fillable alanları eklendi: Models/Test/Test.php
        📘 Interface oluşturuldu: TestInterface
        🧩 Repository oluşturuldu: TestRepository
        ⚙️ Service oluşturuldu: TestService
        📝 Request oluşturuldu: TestStoreRequest
        ... (diğer Request'ler)
        🔗 AppServiceProvider'a binding eklendi
        🎉 Tüm Test sınıfları başarıyla oluşturuldu!

        ```

### Örnek Migration Üretimi

[](#örnek-migration-üretimi)

Bir `title` (string, 255) sütunu eklediğinizde migration şöyle olur:

```
