fukibay/laravel-starter-pack
Composer 安装命令:
composer require fukibay/laravel-starter-pack
包简介
Starter pack: minimal scaffolding helpers for new Laravel projects.
README 文档
README
Fukibay Laravel Starter Pack, Repository ve Service katmanlarını kullanarak temiz mimariyle proje geliştirenler için tasarlanmış, akıllı bir kod üretim (scaffolding) ve altyapı kurulum paketidir. Tekrarlayan kurulum ve kodlama adımlarını tek bir interaktif komutla otomatize ederek, doğrudan projenizin iş mantığına odaklanmanızı sağlar.
🎯 Felsefemiz
Bu paket, "örtük" varsayımlar yerine açık ve net komutları tercih eder. Amacımız, geliştirme sürecinizi hızlandırırken, kodun kontrolünün daima sizde kalmasını sağlamaktır. Ürettiğimiz kodun ve kurduğumuz altyapının güvenilir, esnek ve öngörülebilir olmasını garanti ederiz.
🚀 Temel Özellikler
- 🧠 Akıllı Kurulum Sihirbazı: Tek bir komutla (
fukibay:install) tüm temel altyapıyı kurun. Sihirbaz, size interaktif olarak veritabanı sürücünüzü sorar ve yapılandırmanızı otomatik olarak yapar. - Akıllı Kod Üretimi:
makekomutları ile saniyeler içinde, projenizin yapısına tam uyumlu Repository ve Service sınıfları oluşturun. - 🤖 Otomatik Soft Deletes Entegrasyonu:
- Repository oluştururken modelinizdeki
SoftDeletestrait'ini otomatik olarak algılar. - Service oluştururken, ilgili repository'nin soft-delete destekli olup olmadığını anlar ve gerekli
ProxiesSoftDeletestrait'ini sınıfa otomatik olarak ekler.
- Repository oluştururken modelinizdeki
- ⚡ Güçlü ve Esnek Sorgulama:
QueryParametersDTO'su sayesinde karmaşıkwhere,relation,orderBy,limit,scopeveexistsgibi sorguları zincirlemeden, tek bir nesne ile temiz bir şekilde yapın. - 🛠️ Kullanıma Hazır Yardımcılar: Kurulumla birlikte gelen
ApiResponder,HandlesFilesgibi trait'lerle API yanıtlarınızı ve dosya yönetimini anında standartlaştırın. - 🛡️ Otomatik API Hata Yönetimi: Kurulum,
ValidationExceptiongibi yaygın API hatalarını otomatik olarak yakalayıp standart bir JSON formatında döndüren birHandler.phpdosyası içerir. - Veritabanı Sürücü Desteği: Repository'lerinizi
PostgreSqlveMySqliçin özel alt klasörlerde oluşturarak projenizi düzenli tutar.
📦 Kurulum
Paketi projenize kurmak ve çalışır hale getirmek sadece iki adımdır.
Adım 1: Composer ile Paketi Yükleyin
composer require fukibay/laravel-starter-pack
Adım 2: Akıllı Kurulum Sihirbazını Çalıştırın
php artisan fukibay:install
Bu komut, size hangi veritabanı sürücüsünü kullandığınızı soracak ve ardından gerekli tüm yapılandırma ve temel dosyaları projenize otomatik olarak kuracaktır.
╔═══════════════════════════════════════════════╗ ║ Fukibay Laravel Starter Pack Kurulum Sihirbazı ║ ╚═══════════════════════════════════════════════╝ 1. Yapılandırma dosyası yayınlanıyor... Repository'leriniz için bir veritabanı sürücüsü seçin. Bu seçim, dosyaların hangi alt klasöre oluşturulacağını belirleyecektir. Hangi veritabanı sürücüsünü kullanıyorsunuz? PostgreSql MySql > 0 Veritabanı sürücüsü PostgreSql olarak ayarlandı. 2. Gerekli arayüz, trait ve temel sınıflar kopyalanıyor... Yazıldı: app/Repositories/Contracts/BaseRepositoryInterface.php ... ✅ Kurulum başarıyla tamamlandı! ...
🛠️ Kullanım Akışı
Adım 1: Repository Oluşturma
Bir Eloquent Modeli'ne bağlı yeni bir repository ve arayüzü oluşturmak için fukibay:make:repository komutunu kullanın.
php artisan fukibay:make:repository UserRepository --model=User
Bu komut iki dosya oluşturur:
- Arayüz:
app/Repositories/Contracts/UserRepositoryInterface.php - Sınıf:
app/Repositories/PostgreSql/UserRepository.php(yapılandırmanıza göre)
Neden
--modelparametresi zorunlu? Model adını repository adından tahmin etmek (UserRepository->User) basit durumlarda işe yarasa da, karmaşık isimlendirmelerde ve farklı namespace yapılarında hatalara yol açabilir.--modelparametresini zorunlu kılarak, hangi modelin kullanılacağını açıkça belirtmenizi sağlıyor ve böylece %100 güvenilir ve hatasız kod üretiyoruz. Bu, paketin temel felsefesidir.
Soft Deletes Algılaması:
Eğer User modeliniz Illuminate\Database\Eloquent\SoftDeletes trait'ini kullanıyorsa, oluşturulan UserRepository sınıfı ve arayüzü bunu otomatik olarak algılayıp SoftDeletesRepositoryInterface'i ve ilgili trait'i uygulayacaktır.
Adım 2: Service Oluşturma (Akıllı Kısım)
İlgili repository'yi kullanan bir servis sınıfı oluşturun.
php artisan fukibay:make:service UserService
Paketin zekası burada devreye giriyor:
- Komut,
UserServiceiçinUserRepositoryInterface'in gerektiğini anlar. - Daha sonra bu arayüzün
SoftDeletesRepositoryInterface'i genişletip genişletmediğini kontrol eder. - Eğer cevap evet ise,
ProxiesSoftDeletestrait'ini servis sınıfına otomatik olarak ekler!
Örnek Çıktı (Eğer User modeli SoftDeletes kullanıyorsa):
// app/Services/UserService.php (Otomatik oluşturulan kod) namespace App\Services; use App\Repositories\Contracts\UserRepositoryInterface; use Fukibay\StarterPack\Traits\ProxiesSoftDeletes; // OTOMATİK EKLENDİ! class UserService extends BaseService { use ProxiesSoftDeletes; // OTOMATİK EKLENDİ! public function __construct(UserRepositoryInterface $userRepository) { parent::__construct($userRepository); } }``` Bu sayede, soft-delete metotlarını kullanmak için herhangi bir ek işlem yapmanıza gerek kalmaz. ### Adım 3: Service Provider ile Bağlama Oluşturduğunuz arayüzleri ve sınıfları Laravel'in Service Container'ına tanıtın. ```php // app/Providers/AppServiceProvider.php namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Repositories\Contracts\UserRepositoryInterface; use App\Repositories\PostgreSql\UserRepository; // Yapılandırmanıza göre doğru yolu seçin class AppServiceProvider extends ServiceProvider { public function register(): void { $this->app->bind( UserRepositoryInterface::class, UserRepository::class ); } // ... }
Adım 4: Gelişmiş Sorgular (QueryParameters)
Paketin en güçlü yanlarından biri, QueryParameters DTO'su ile karmaşık ve okunabilir sorgular yapabilmektir.
Örnek Senaryo: Onaylanmış (status=approved), puanı 80'den yüksek (score > 80), profili (profile ilişkisi) olan ve en yeniye göre sıralanmış kullanıcıları getirelim.
// Bir Controller veya başka bir Service içinde... use App\Services\UserService; use App\Repositories\Criteria\QueryParameters; class UserController extends Controller { public function __construct(private UserService $userService) {} public function index() { $criteria = new QueryParameters( filters: [ 'status' => 'approved', 'score' => ['>', 80], 'exists' => ['profile'], // 'profile' ilişkisi olanlar ], relations: ['profile', 'posts'], // Eager loading orderBy: ['created_at' => 'desc'] ); $users = $this->userService->paginate($criteria); // ... } }
Desteklenen Filtre Operatörleri:
=, !=, >, >=, <, <=, like, date, in, between, null, not_null, exists (ilişki var mı?), not_exists (ilişki yok mu?). Ayrıca dot notasyonu ile ilişkisel alanlarda da filtreleme yapabilirsiniz (profile.city => 'Ankara').
Adım 5: Kurulumla Gelen Yardımcıları Kullanma
fukibay:install komutu, işinizi kolaylaştıracak bazı trait'leri projenize kurar.
ApiResponder Trait'i
API yanıtlarınızı app/Traits/ApiResponder.php içindeki bu trait ile standartlaştırın.
// Örnek bir Controller'da use App\Traits\ApiResponder; class UserController extends Controller { use ApiResponder; public function show($id) { $user = $this->userService->findById($id); if (!$user) { return $this->error('Kullanıcı bulunamadı', 404); } return $this->success(new UserResource($user)); } }
HandlesFiles Trait'i
Dosya yükleme, silme ve güncelleme işlemlerini app/Traits/HandlesFiles.php içindeki bu trait ile kolayca yapın.
// Örnek bir Service'te use App\Traits\HandlesFiles; class UserService extends BaseService { use HandlesFiles; public function updateUserAvatar(int $userId, UploadedFile $avatar) { $user = $this->findByIdOrFail($userId); // Eski avatarı silip yenisini yükler ve yolunu döner $path = $this->updateFile($avatar, 'avatars', $user->avatar_path); return $this->update($userId, ['avatar_path' => $path]); } }
🎯 Komutların Özeti
| Komut | Açıklama |
|---|---|
fukibay:ping |
Paketin doğru kurulup kurulmadığını test eder. |
fukibay:install |
Gerekli temel arayüz, trait ve sınıfları interaktif sihirbaz ile app dizinine kurar. |
fukibay:make:repository <Ad> --model=<Model> |
Yeni bir repository sınıfı ve arayüzü oluşturur. |
fukibay:make:service <Ad> |
Yeni bir servis sınıfı oluşturur ve ilgili repository'yi akıllıca enjekte eder. |
Bu paket, Furkan Can Bayrak tarafından geliştirilmiştir. Katkıda bulunmak isterseniz, lütfen GitHub reposu üzerinden pull request gönderin.
fukibay/laravel-starter-pack 适用场景与选型建议
fukibay/laravel-starter-pack 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 09 月 02 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「pattern」 「repository」 「service」 「laravel」 「scaffolding」 「starter」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 fukibay/laravel-starter-pack 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 fukibay/laravel-starter-pack 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 fukibay/laravel-starter-pack 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
A fast and intuitive dependency injection container.
A Laravel package for the Repository Design Pattern.
Registry service.
Laravel 5 - Repositories to the database layer
Inbox pattern process implementation for your Laravel Applications
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-02