Files
laravel-bitunix-api/src/LaravelBitunixApiServiceProvider.php
T
2026-04-12 19:59:00 +02:00

65 lines
3.0 KiB
PHP

<?php
namespace Msr\LaravelBitunixApi;
use Illuminate\Contracts\Cache\Factory as CacheFactory;
use Msr\LaravelBitunixApi\Commands\LaravelBitunixApiCommand;
use Msr\LaravelBitunixApi\Contracts\RateLimiterContract;
use Msr\LaravelBitunixApi\Requests\ChangeLeverageRequestContract;
use Msr\LaravelBitunixApi\Requests\ChangeMarginModeRequestContract;
use Msr\LaravelBitunixApi\Requests\FlashClosePositionRequestContract;
use Msr\LaravelBitunixApi\Requests\FutureKLineRequestContract;
use Msr\LaravelBitunixApi\Requests\GetHistoryPositionsRequestContract;
use Msr\LaravelBitunixApi\Requests\GetHistoryTradesRequestContract;
use Msr\LaravelBitunixApi\Requests\GetPendingPositionsRequestContract;
use Msr\LaravelBitunixApi\Requests\GetSingleAccountRequestContract;
use Msr\LaravelBitunixApi\Requests\GetTradingPairsRequestContract;
use Msr\LaravelBitunixApi\Requests\PlaceOrderRequestContract;
use Msr\LaravelBitunixApi\Requests\PlacePositionTpSlOrderRequestContract;
use Msr\LaravelBitunixApi\Requests\PlaceTpSlOrderRequestContract;
use Msr\LaravelBitunixApi\Support\CacheRateLimiter;
use Spatie\LaravelPackageTools\Package;
use Spatie\LaravelPackageTools\PackageServiceProvider;
class LaravelBitunixApiServiceProvider extends PackageServiceProvider
{
public function configurePackage(Package $package): void
{
/*
* This class is a Package Service Provider
*
* More info: https://github.com/spatie/laravel-package-tools
*/
$package
->name('laravel-bitunix-api')
->hasConfigFile()
->hasViews()
->hasMigration('create_laravel_bitunix_api_table')
->hasCommand(LaravelBitunixApiCommand::class);
}
public function packageRegistered(): void
{
parent::packageRegistered();
$this->app->bind(FutureKLineRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(ChangeLeverageRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(ChangeMarginModeRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(PlaceOrderRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(FlashClosePositionRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(GetPendingPositionsRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(GetSingleAccountRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(PlaceTpSlOrderRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(PlacePositionTpSlOrderRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(GetTradingPairsRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(GetHistoryTradesRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(GetHistoryPositionsRequestContract::class, LaravelBitunixApi::class);
$this->app->bind(RateLimiterContract::class, function ($app) {
return new CacheRateLimiter(
$app->make(CacheFactory::class)->store()
);
});
}
}