design

Laravel’de Package Development: Kendi Paketinizi Oluşturun

March 23, 2025

Merhaba arkadaşlar, bugün sizlere Laravel’de paket geliştirme (package development) konusunu anlatacağım. Laravel, genişletilebilir bir yapıya sahiptir ve kendi paketlerinizi oluşturarak uygulamanızı daha modüler hale getirebilirsiniz. Paketler, tekrar kullanılabilir kod parçalarıdır ve farklı projelerde kolayca kullanılabilir. Gelin, bu süreci adım adım inceleyelim.


Paket Geliştirme Nedir?

Paket geliştirme, belirli bir işlevselliği tekrar kullanılabilir hale getirmek için kod parçalarını paketler halinde düzenleme işlemidir. Örneğin, bir ödeme entegrasyonu, bir API bağlantısı veya bir veritabanı yönetim aracı gibi işlevselliği paketler halinde geliştirebilirsiniz.


Laravel’de Paket Oluşturma Adımları


  1. Paket Klasörü Oluşturma
  2. İlk olarak, paketinizi oluşturacağınız bir klasör oluşturun. Örneğin, packages adında bir klasör oluşturabilirsiniz:


composer init
  1. Bu komut, paketinizin adını, açıklamasını, yazarını ve bağımlılıklarını tanımlamanızı sağlar.
  2. Örnek composer.json Dosyası:


{
    "name": "myvendor/my-package",
    "description": "My custom Laravel package",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "Your Name",
            "email": "your@email.com"
        }
    ],
    "require": {},
    "autoload": {
        "psr-4": {
            "MyVendor\\MyPackage\\": "src/"
        }
    }
}


Bu dosya, paketinizin otomatik yüklenmesini sağlar ve src dizinindeki sınıfları MyVendor\MyPackage namespace’i altında yükler.

Paket Yapısını Oluşturma

Paketinizin yapısını oluşturmak için src dizini altında gerekli dosyaları oluşturun. Örneğin, bir servis sağlayıcısı (service provider) oluşturalım:


mkdir src
touch src/MyPackageServiceProvider.php


MyPackageServiceProvider.php Dosyası:

namespace MyVendor\MyPackage;

use Illuminate\Support\ServiceProvider;

class MyPackageServiceProvider extends ServiceProvider
{
    public function boot()
    {
        // Paket yüklendiğinde yapılacak işlemler
    }

    public function register()
    {
        // Paket kaydedildiğinde yapılacak işlemler
    }
}


Bu servis sağlayıcısı, paketinizin Laravel’e entegre edilmesini sağlar.

Paketi Laravel’e Entegre Etme

Paketinizi Laravel’e entegre etmek için composer.json dosyanızda paketinizi tanımlayın:


"autoload": {
    "psr-4": {
        "MyVendor\\MyPackage\\": "packages/my-package/src"
    }
}

Ardından, aşağıdaki komutu çalıştırarak otomatik yüklemeyi güncelleyin:


composer dump-autoload


Son olarak, config/app.php dosyasında servis sağlayıcınızı kaydedin:


'providers' => [
    // Diğer servis sağlayıcıları
    MyVendor\MyPackage\MyPackageServiceProvider::class,
],


Paket İçinde Route ve View Kullanma

Paketiniz içinde route ve view kullanmak için servis sağlayıcınızda gerekli tanımlamaları yapabilirsiniz.


Örneğin, bir route tanımlamak için:

public function boot()
{
    $this->loadRoutesFrom(__DIR__.'/routes/web.php');
    $this->loadViewsFrom(__DIR__.'/resources/views', 'mypackage');
}


Ardından, routes/web.php dosyasında route’larınızı tanımlayabilirsiniz:


use Illuminate\Support\Facades\Route;

Route::get('/mypackage', function () {
    return view('mypackage::welcome');
});


Bu route, resources/views/welcome.blade.php dosyasını kullanır.


Paketi Yayınlama

Paketinizi yayınlamak için önce bir GitHub deposu oluşturun ve paketinizi bu depoya yükleyin. Ardından, paketinizi Packagist’e kaydederek diğer geliştiricilerin kullanımına sunabilirsiniz.

Paketi Packagist’e Kaydetme:

  1. Packagist web sitesine gidin ve bir hesap oluşturun.
  2. GitHub deposunun URL’sini Packagist’e ekleyin.
  3. Paketiniz artık composer require myvendor/my-package komutu ile yüklenebilir.


Laravel’de Paket Geliştirmenin Avantajları

  • Modülerlik: Paketler sayesinde uygulamanızı daha modüler hale getirebilirsiniz.
  • Tekrar Kullanılabilirlik: Paketler, farklı projelerde kolayca kullanılabilir.
  • Topluluk Katkısı: Paketlerinizi açık kaynak olarak yayınlayarak topluluğa katkıda bulunabilirsiniz.


Laravel’de paket geliştirme, uygulamanızı daha modüler ve esnek hale getirmenin en etkili yollarından biridir. Eğer belirli bir işlevselliği tekrar kullanılabilir hale getirmek istiyorsanız, kendi paketlerinizi oluşturmayı mutlaka denemelisiniz. Bir sonraki yazımda, Laravel’de Docker Kullanımı: Geliştirme Ortamınızı Optimize Edin konusuna değineceğim. Görüşmek üzere!

3 + 4 =