aras-kargo-laravel maintained by assoft
Description
Modern Laravel package for Aras Kargo API integration with advanced caching, logging, and rate limiting features
Author
Last update
2025/10/28 03:31
(dev-master)
License
Downloads
2
Aras Kargo Laravel Package
Modern Laravel package for Aras Kargo API integration with advanced caching, logging, and rate limiting features. Perfect for Laravel 11/12 applications that need to track cargo shipments and manage logistics data.
Özellikler
- ✅ Laravel 11/12 desteği
- ✅ Modern PHP 8.1+ özellikleri
- ✅ Cache entegrasyonu
- ✅ Logging sistemi
- ✅ Service Provider ve Facade desteği
- ✅ Configuration management
- ✅ Exception handling
- ✅ Type declarations
Change Log
- See ChangeLog
License
- See ChangeLog
Kurulum
Laravel projenizde composer ile kurulum yapın:
composer require assoft/aras-kargo-laravel
Laravel Auto-Discovery
Paket Laravel'in auto-discovery özelliğini destekler. Service Provider ve Facade otomatik olarak yüklenir.
Manuel Kurulum
Eğer auto-discovery devre dışıysa, config/app.php dosyasına ekleyin:
'providers' => [
// ...
Assoft\ArasKargo\Providers\ArasKargoServiceProvider::class,
],
'aliases' => [
// ...
'ArasKargo' => Assoft\ArasKargo\Facades\ArasKargo::class,
],
Configuration
Configuration dosyasını publish edin:
php artisan vendor:publish --provider="Assoft\ArasKargo\Providers\ArasKargoServiceProvider" --tag="aras-kargo-config"
.env dosyanıza Aras Kargo bilgilerinizi ekleyin:
ARAS_KARGO_USERNAME=your_username
ARAS_KARGO_PASSWORD=your_password
ARAS_KARGO_CUSTOMER_CODE=your_customer_code
ARAS_KARGO_CACHE_ENABLED=true
ARAS_KARGO_LOGGING_ENABLED=true
Kullanım
Facade Kullanımı
use Assoft\ArasKargo\Facades\ArasKargo;
// Kargo bilgisi sorgulama
$cargo = ArasKargo::getCargoInformation('9023745602734');
// Tarih aralığı sorgulama
$cargos = ArasKargo::getCargoBetweenDate('01-01-2024', '31-01-2024');
Service Container Kullanımı
use Assoft\ArasKargo\Contracts\ArasKargoInterface;
class CargoController extends Controller
{
public function __construct(
private ArasKargoInterface $arasKargo
) {}
public function track(Request $request)
{
return $this->arasKargo->getCargoInformation($request->tracking_number);
}
}
Rate Limiting Middleware (Opsiyonel)
Rate limiting middleware'i kullanarak API isteklerini sınırlayabilirsiniz. Varsayılan olarak devre dışıdır.
1. Rate Limiting'i Etkinleştirme
.env dosyasında rate limiting'i etkinleştirin:
ARAS_KARGO_RATE_LIMIT_ENABLED=true
ARAS_KARGO_RATE_LIMIT_MAX_ATTEMPTS=60
ARAS_KARGO_RATE_LIMIT_DECAY_MINUTES=1
ARAS_KARGO_RATE_LIMIT_KEY_PREFIX=aras_kargo_rate_limit
2. Middleware Kullanımı
// routes/api.php
Route::middleware(['aras-kargo.rate-limit:60,1'])->group(function () {
Route::get('/cargo/{trackingNumber}', [CargoController::class, 'track']);
});
// Controller'da middleware kullanımı
class CargoController extends Controller
{
public function __construct()
{
$this->middleware('aras-kargo.rate-limit:30,1'); // 30 istek/dakika
}
}
3. Config Dosyasından Yönetim
// config/aras-kargo.php
'rate_limit' => [
'enabled' => env('ARAS_KARGO_RATE_LIMIT_ENABLED', false), // Default: disabled
'max_attempts' => env('ARAS_KARGO_RATE_LIMIT_MAX_ATTEMPTS', 60),
'decay_minutes' => env('ARAS_KARGO_RATE_LIMIT_DECAY_MINUTES', 1),
'key_prefix' => env('ARAS_KARGO_RATE_LIMIT_KEY_PREFIX', 'aras_kargo_rate_limit'),
],
4. Özellikler
- Opsiyonel: Varsayılan olarak devre dışı
- Config Tabanlı: Tüm ayarlar config dosyasından yönetilebilir
- Kullanıcı Bazlı: Authenticated kullanıcılar için ayrı limitler
- IP Bazlı: Anonymous kullanıcılar için IP bazlı limitler
- Flexible: Middleware parametreleri config değerlerini override edebilir
Fonksiyonlar
/**
*
* @description Bir kargonun durumu hakkında bilgi verir.
* @param string Kargo Numarası
*
*/
$aras->getCargoInformation(9023745602734);
/**
*
* @description Belirli bir tarihe göre gönderilen kargoların listesini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
*
*/
$aras->getCargoMovementDate(date('d-m-Y'));
/**
*
* @description Teslim tarihine göre teslim edilen kargoların listesini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
*
*/
$aras->getCargoDevileryDate(date('d-m-Y'));
/**
*
* @description İrsaliye tarihine göre teslim edilen kargoların listesini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
*
*/
$aras->getCargoWaybillDevileryDate(date('d-m-Y'));
/**
*
* @description Henüz teslim edilmemiş, bir nedenle teslimat şubesinde bekleyen kargoların listesini verir.
*
*/
$aras->getCargoUnDevilered();
/**
*
* @description Belirli bir tarihe göre yönlendirilen kargoların listesini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
*
*/
$aras->getCargoRedirectDate(date('d-m-Y'));
/**
*
* @description İrsaliye tarihine göre Gidiş dönüş hizmet verilen Geri Dönüşlü kargo
* ürünü ile gönderilen kargoların listesini verir
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
*
*/
$aras->getCargoWaybillBackRedirectDate(date('d-m-Y'));
/**
*
* @description Göndericiye iade edilen kargoların listesini verir
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
*
*/
$aras->getCargoSenderReturnDate(date('d-m-Y'));
/**
*
* @description Kargo hareket bilgisini verir
* @param int Kargo Numarası
*
*/
$aras->getCargoMovementInformation(9023745602734);
/**
*
* @description Aras Kargoya Ait tüm şube ve şube adres bilgilerini verir.
*
*/
$aras->getAllBranchs();
/**
*
* @description İki Tarih aralığına göre (İrsaliye Tarihi), kargoların listesini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
* @param string veya int
*
*/
$aras->getCargoWaybillBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y'));
/**
*
* @description İki tarih aralığına göre (İrsaliya Tarihi), kargo listesini verir.
* getCargoWaybillBetweenDate'den farklı olarak tahsilatlı kargo bilgilerini de içerir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
* @param string veya int
*
*/
$aras->getCargoWaybillExtraBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y'));
/**
*
* @description İki Tarih aralığına göre, kargoların devir bilgisini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
* @param string veya int
*
*/
$aras->getCargoTransferBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y'));
/**
*
* @description İki Tarih aralığına göre, kargoların listesini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
* @param string veya int
*
*/
$aras->getCargoBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y'));
/**
*
* @description İki Tarih aralığına gore (İrsaliye Tarihi), kargoların bilgisini verir.
* @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir.
* @param string veya int
* @param string veya int
*
*/
$aras->getCargoWaybillInformationBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y'));
/**
*
* @description Kargo Durumuyla ilgili genel bilgi verir.
* Eğer kargo geri dönüşlü ise bu dataset dolu gelir ve geri dönüş teslimat bilgilerini içerir.
* Eğer kargo Geri Dönüşlü değilse bu dataset dolu gelir ve kargo teslimat bilgilerini içerir.
* Kargonun devir bilgilerini içerir.
* Kargo Yönlendirme ve İade Hareketleri ve Nedenlerini içerir
* Geri Dönüşlü Kargo Bilgilerini içerir
* @param int Kargo Numarası
* @return array
*
*/
$aras->getCargoRealInformation(9093773579276);
/**
*
* @description Fatura Bilgilerini Döner
* Normal Fatura ve E-Fatura araması yapılabilir.
* Fatura No ve Fatura Tipi parametre olarak geçilir.
* Normal fatura için 'fatura', EFatura için 'efatura' parametresi geçilir.
* @param string Fatura Numarası
* @param string Fatura Türü (efatura/fatura)
* @return array
*
*/
$aras->getCargoInvoice("AAA201400040405", 'fatura');
/**
*
* @description Aras kargonun bugün teslim edilen kargo sayısını döner
* @return array
*
*/
$aras->getCargoCountToday();
/**
*
* @description Kampanya kodu bilgilerini döner
* @return array
*
*/
$aras->getCampaignCode("KAMPANYAKODU");