Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Bağımlılığı silerek bir destek masası oluşturdum.
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Bağımlılığı silerek bir destek masası oluşturdum.

Yazılım

Bağımlılığı silerek bir destek masası oluşturdum.

teknomers
Son güncelleme: 8 Haziran 2026 19:08
teknomers
Paylaş
Paylaş

Bildiğiniz üzere, bir destek kanalı ekledim. LaraFoundry, bir Laravel uygulaması olarak tekrar kullanılabilir bir SaaS çekirdeğidir. Her modül için kural aynıdır: Eski koddan kanıtlanmış bir fikri çıkarıp modernleştirmek, güçlendirmek ve yeni Laravel uygulamasına yükleyebileceğiniz bir şey haline getirmek.

<h2>
    <a name="why-a-ticket-package-is-wrong-for-a-reusable-core" href="#why-a-ticket-package-is-wrong-for-a-reusable-core"></a>
    Neden bir bilet paketi, tekrar kullanılabilir bir çekirdek için yanlıştır
</h2>

<p>Üçüncü taraf bir bilet paketi, tek bir uygulama oluştururken mantıklı bir seçimdir. Ancak diğer uygulamaların kuracağı bir çekirdek için yanlış bir seçimdir. Çekirdeğe entegre edildiğinde, her ana uygulama bu paketin migration'larını, tablo adlarını ve kavramlarını miras alır.</p>

<p>Bu yüzden paketi çıkardım ve modeli elle yazdım. Model yaklaşık 180 satır. İki tablo, bir uuid, bir durum ve birkaç scope var. Pakete bağımlı olmak yerine çekirdekte daha az kod tuttum, çünkü sadece kullandığım davranışı korudum.</p>

<div class="highlight js-code-highlight">
    <pre class="highlight php"><code>/ 
  • Bir destek bileti: bir ana kullanıcı ile platform operatörü arasındaki kanal.

  • Üçüncü taraf bilet paketinden çıkarıldı. Bu bağımlılık kesildi: bu, bağımsız bir model.

  • Kategoriler ve etiketler, konfigürasyona bağlı JSON dizi olarak işleniyor.
    */
    class Ticket extends Model
    {
    use Filterable;

    public const STATUS_WAIT_MODERATOR = ‘wait-moderator’;
    public const STATUS_WAIT_CUSTOMER = ‘wait-customer’;
    public const STATUS_RESOLVED = ‘resolved’;

    protected $table = ‘larafoundry_tickets’;
    }


Saklamaya Değer Kısım: Kimsenin Ayarlamadığı Bir Durum

Donör kodunda gerçekten iyi olan tek fikir durum akışıdır ve bunu korudum. Çoğu bilet sistemi operatöre bir durum açılır menüsü verir. Ancak LaraFoundry biletlerinin üç durumu var ve hiçbirini seçmezsiniz.

Contents
  • Saklamaya Değer Kısım: Kimsenin Ayarlamadığı Bir Durum
  • Çıkarma, Ücretsiz Bir Kod İncelemesi
  • Konfigürasyon, Pivot Tablolar Değil
  • Askıya Alınmış Bir Müşterinin Ulaşması Gereken Tek Ekran
  • Geçen Ayın Dikişini Yeniden Kullanmak
  • Güvenlik Geçişi
  • Test Etme
  • Ücretsiz
  kullanıcı bir bilet açar
     |
     v
wait-moderator   kullanıcı cevap verir ----> yeniden açar (wait-moderator)

Cevaplanan biletlerin yeniden açılması, aslında kapalı olmadığının göstergesi olarak işlemektedir. Bu, eski durum listesi ve unutma konusunu ortadan kaldırır.

Operatörlerin sıra düzenini yöneten bu durumu kullanıyoruz.

public function scopeWorkflowOrder(Builder $query): Builder
{
 return $query
     ->orderByRaw("CASE WHEN status='resolved' THEN 1 ELSE 0 END asc")
     ->orderByRaw("CASE WHEN created_at = updated_at THEN 0 WHEN priority = 'high' THEN 1 WHEN priority = 'standard' THEN 2 ELSE 3 END asc")
     ->orderByRaw("CASE WHEN status='wait-moderator' THEN 1 WHEN status='wait-customer' THEN 2 ELSE 3 END asc")
     ->orderBy('updated_at', 'desc');
}


Çıkarma, Ücretsiz Bir Kod İncelemesi

Çıkarma işlemi, daha önce yazdığınız kodu yeniden gözden geçirmenizi zorlar. Çıkarma işlemini temiz yapmak için donörün her satırını okumam gerekti.


Konfigürasyon, Pivot Tablolar Değil

Kategoriler ve etiketler genellikle pivot tablo için başvurulan yapılardır. Ancak diğer insanların yapılandırabileceği bir çekirdek için bu ağırdır. Dolayısıyla kategoriler ve etiketler, konfigürasyona bağlı JSON dizi olarak işlenmektedir.

// config/larafoundry-tickets.php
'categories' => ['general', 'billing', 'feature', 'bug'],
'labels' => ['quick', 'complex'],


Askıya Alınmış Bir Müşterinin Ulaşması Gereken Tek Ekran

Bir şirket askıya alındığında, destek sayfası en önemli ekran olmalıdır. Çünkü bu, onlarla iletişime geçmek için tek yoludur.


Geçen Ayın Dikişini Yeniden Kullanmak

Bilet modülü, operatör yanıtladığında bir bildirim çağrısı yapar.

app(NotificationService::class)->system([
 users: [$ticket->user],
 code: 'info',
 titleKey: 'larafoundry::tickets.notify.reply.title',
]);


Güvenlik Geçişi

Kendi yazdığım kod, güvenliği benim sorumluluğumda kılar. Kullanıcı yönlendirmeleri, bir kimlik doğrulama politikası ile yönetilir, yani başka bir kullanıcının biletine erişim 403 hatasına yol açar.


Test Etme

Bilet modülü, 30 yeni test ekledi. Entegre testler, gerçek kullanıcılar ve gerçek kullanıcı modelleri içindeki middleware yığınını denetler.


Ücretsiz

Bilet modülü, LaraFoundry’nin temel bir parçasıdır ve yıllardır tüm uygulama için gereklidir. Yani bu makalede yer alan tüm kod, tam olarak gönderilen koddur.

Kaynak: Orijinal Makale

Laravel Projelerinde Docker Nasıl ve Neden Kullanılmalıdır?
Composer yalnızca bir konsol uygulamasıdır
MonkeysLegion 2.0 Yayınlandı — Apex AI ve Daha Hızlı PHP Çalışma Zamanı ile Tanışın
Laravel Sorgu Kapısı v1.2.0 HARİKA
Laravel ve Daha Fazlası İçin Hazır Geliştirme Sistemi
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale WhatsApp NSO Grubu ile bağlantılı yeni casus yazılım saldırılarını tespit etti
Sonraki Makale Acil! IKEv1’deki Kritik Check Point VPN Açığıyla Şifreler Aşıldı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Zepto Hızla Büyüyor, Ama Değeri Tartışmalı mı?
Genel
Amsterdam 1666 Prologu Steam Yorumcularından Sert Eleştiriler Alıyor
Oyun
Şaman İçin Versatile ve Korkutucu Yeni Silah Kartı Tanıtımı
Oyun
Kan Mesajı’nın Yakın Dövüş Savaş Mekaniği Tanıtımdan Daha Etkileyici
Oyun
Harici API’leri Koruma: Laravel’de Redis Token Bucket Kullanımı
Yazılım
PC Oyun Gösterimi’nden Favori Sekiz Oyun Seçkisi
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?