承接 spatie/laravel-interacts-with-payload 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

spatie/laravel-interacts-with-payload

最新稳定版本:1.2.2

Composer 安装命令:

composer require spatie/laravel-interacts-with-payload

包简介

Add variables to the payloads of all jobs in a Laravel app

README 文档

README

Latest Version on Packagist run-tests Total Downloads

This package makes it easy to inject things in every job.

Imagine that you want to have the user who initiated the queued of a job available in every queued job. This is how you would implement that using this package.

// typically in a service provider

use Spatie\InteractsWithPayload\Facades\AllJobs;

AllJobs::add('user', fn() => auth()->user());

To retrieve the user in your queued job you can call getFromPayload which is available through the InteractsWithPayload trait.

use Illuminate\Contracts\Queue\ShouldQueue;
use Spatie\InteractsWithPayload\Concerns\InteractsWithPayload;

class YourJob implements ShouldQueue
{
    use InteractsWithPayload;  
    
    public function handle()
    {
        // instance of User model or `null`
        $user = $this->getFromPayload('user');
    }  
}

Are you a visual learner?

In this livestream, you'll see our developer Freek explains how you can use the package, it's internals and how we test this package.

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Installation

You can install the package via composer:

composer require spatie/laravel-interacts-with-payload

Usage

To add a value to all jobs call the add method on the AllJobs facade with a name and a closure that returns the value.

use Spatie\InteractsWithPayload\Facades\AllJobs;

AllJobs::add('extraValue', fn() => 'My extra value')

To retrieve the user in your queued job you can call getFromPayload which is available through the InteractsWithPayload trait.

use Illuminate\Contracts\Queue\ShouldQueue;
use Spatie\InteractsWithPayload\Concerns\InteractsWithPayload;

class YourJob implements ShouldQueue
{
    use InteractsWithPayload;  
    
    public function handle()
    {
        // will contain "My extra value"
        $value = $this->getFromPayload('extraValue');
    }  
}

Using models

It is safe to let the closure you pass to add return an Eloquent model.

use Spatie\InteractsWithPayload\Facades\AllJobs;

AllJobs::add('user', fn() => auth()->user())

You can retrieve the model with getFromPayload

use Illuminate\Contracts\Queue\ShouldQueue;
use Spatie\InteractsWithPayload\Concerns\InteractsWithPayload;

class YourJob implements ShouldQueue
{
    use InteractsWithPayload;  
    
    public function handle()
    {
        // instance of User model or `null` if the user has been deleted in the meantime
        $user = $this->getFromPayload('user');
    }  
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

This package is inspired by this awesome blogpost by James Brooks. Thank you James for also having helped hunting down that queueing bug in Laravel ????

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 72.42k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 67
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 67
  • Watchers: 3
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 未知

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固