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 geliştiricileri için pratik bir frontend yol haritası
PHP’de ekran görüntüsü alma ve PDF oluşturma (wkhtmltopdf olmadan)
Altyapı Uyarıları İçin Telegram Botu Nasıl Oluşturulur
Veritabanınız Zaten Cevaplara Sahip – Sadece Sormanız Gerekiyor
Laravel’de Eloquent ORM’ye Giriş
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

WhatsApp Kullanıcı Adlarını Tanıtıyor: Sizinki Nasıl Alınır?
Liste
WhatsApp’tan Kritik Güncelleme: Kullanıcı Adıyla Telefon Numaranı Gizle!
Siber Güvenlik
Güney Koreli teknoloji devleri 550 milyar dolardan fazlasını yatırım yapacak
Genel
Kaliforniya, Claude’i yarı fiyatına kullanma anlaşması yaptı
Yapay Zeka
Laravel AI Ajanını Herhangi Bir MCP Sunucusuna Bağlama: Uygulamalı Bir Rehber
Yazılım
Valve, Dbrand’a yasal işlem tehtidinde bulundu: Lisanssız ürün durduruldu
Donanım
//

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?