PHP code example of technopers / laravel-trackable-jobs

1. Go to this page and download the library: Download technopers/laravel-trackable-jobs library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

technopers / laravel-trackable-jobs example snippets


class CompressUserProfilePicture {
    
}

class CompressUserProfilePicture 
{
    use Trackable {
        Trackable::__construct as __trackableConstruct;
    };
    
    public $user;
    
    public function __construct($user)
    {
        $this->user = $user;
        $this->__trackableConstruct($user);
    }
}

use HasTrackedJobs;

public function trackedJobs(): MorphMany
{
    return $this->morphMany(TrackedJob::class, 'trackable');
}

public function finishedJobs(): MorphMany
{
    return $this->morphMany(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_FINISHED);
}

public function failedJobs(): MorphMany
{
    return $this->morphMany(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_FAILED);
}

public function runningJobs(): MorphMany
{
    return $this->morphMany(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_STARTED);
}

public function pendingJobs(): MorphMany
{
    return $this->morphMany(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_QUEUED);
}

use HasTrackedJob;

public function trackedJob(): MorphOne
{
    return $this->morphOne(TrackedJob::class, 'trackable');
}

public function finishedJobs(): MorphOne
{
    return $this->morphOne(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_FINISHED);
}

public function failedJobs(): MorphOne
{
    return $this->morphOne(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_FAILED);
}

public function runningJobs(): MorphOne
{
    return $this->morphOne(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_STARTED);
}

public function pendingJobs(): MorphOne
{
    return $this->morphOne(TrackedJob::class, 'trackable')
        ->where('status', TrackedJobStatuses::STATUS_QUEUED);
}

$userProcesses = $user->trackedJob()->get();

$userProcesses = $user->trackedJob;