baks-dev/avito-orders
Laravel/PHP модуль заказов Avito (FBS/DBS): добавляет тип профиля, оплату и доставку для заказов Avito. Установка через Composer, настройка через консольные команды (baks:*), есть тесты PHPUnit. PHP 8.4+.
HttpKernel and Laravel’s Illuminate\Container. The bundle’s reliance on baks-dev/core (Symfony-centric) introduces architectural friction unless the core library is fully adopted.baks:users-profile-type, baks:delivery) suggest extensibility, but Laravel’s Artisan CLI and service container would need custom wrappers to avoid Symfony dependencies.baks-dev/core:^7.4 risks vendor lock-in. If this core library is abandoned, the entire integration becomes unsustainable.avito_orders, delivery_methods). Migration conflicts with Laravel’s Eloquent or Doctrine (if used) are probable without abstraction layers.Events facade) or message brokers (e.g., RabbitMQ).EventDispatcher) breaking Laravel’s event system.baks-dev/core be replaced with Laravel’s built-in features (e.g., spatie/laravel-activitylog for profiles, laravel-queue for jobs)?baks-dev/core updates? Will Laravel’s deprecations (e.g., Facade changes in v11+) break the bundle?avito/marketplace-api) or generic packages (e.g., webkul/laravel-marketplace) that fit better?HttpKernel impact Laravel’s request lifecycle? Benchmark with blackfire.io.Laravel Compatibility Options:
spatie/laravel-symfony to embed the bundle.HttpKernel, EventDispatcher).PHP Version:
baks-dev/core dependencies for Laravel conflicts (e.g., symfony/console vs. Laravel’s Artisan).Illuminate\Queue for delivery jobs, Illuminate\Events for webhooks).Doctrine\DBAL for raw SQL).baks-dev/core schemas.Illuminate\Database\Migrations\Migration to include Avito tables:
Schema::connection('avito')->create('avito_orders', function (Blueprint $table) { ... });
App\Console\Kernel:
protected $commands = [
\BaksDev\AvitoOrders\Command\AvitoFbsCommand::class,
// Override command handling to use Laravel’s IoC
];
bind() or extend():
$this->app->bind(
\BaksDev\Core\Avito\Service::class,
fn($app) => new \BaksDev\Core\Avito\Service(
$app->make('db.connection.avito')
)
);
Events facade:
// In a service provider
$symfonyDispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
Event::listen('avito.order.created', function ($event) use ($symfonyDispatcher) {
$symfonyDispatcher->dispatch(new \BaksDev\Core\Event\OrderCreatedEvent($event->order));
});
baks-dev/core and baks-dev/avito-orders to composer.json.config/database.php):
'connections' => [
'avito' => [
'driver' => 'mysql',
'url' => env('DATABASE_AVITO_URL'),
'database' => env('DATABASE_AVITO_DATABASE'),
// ...
],
],
php artisan migrate --path=/vendor/baks-dev/core/src/Resources/migrations
profile_types and delivery_methods via Laravel’s seeder.// Example: Policy for Avito orders
class AvitoOrderPolicy
{
public function update(FbsUser $user, AvitoOrder $order) {
return $user->isAvitoFbsAgent();
}
}
baks:payment:avito-fbs command, wrapping it in a Laravel job.phpunit --group=avito-orders in a Laravel-compatible environment.public function test_avito_order_creation_fires_laravel_event()
{
Event::fake();
$this->artisan('baks:orders:create-avito', ['--fbs' => true]);
Event::assertDispatched(\App\Events
How can I help you explore Laravel packages today?