Laravel App versioning

Overview

Version

Take control over your Laravel app version

Latest Stable Version License Code Quality Build

Coverage StyleCI Downloads

Description

This package is a Laravel (5.5+) utility which helps you keep and manage your application version, increment version numbers (major, minor, patch, commit), and can also use your last commit hash.

The end results of this package are:

  • Print a version on a page.
  • Print it in the console, via an Artisan command.

Full SemVer compatibility

This package is able to parse a SemVer version:

v2.0.1-alpha.1227

And translate it to be used as:

label: v
major: 2
minor: 0
patch: 1
prerelease: alpha
buildmetadata: 1227
commit: 49ffe2

You can use the format function to rewrite and show it in your app, for instance, as:

MyApp version 2.0.1 - alpha 1227 (commit 49ffe2)

Some use cases for those results could be:

  • Make sure a rollback was successful.
  • Know if an update reached all servers.
  • Check if a user is looking at the last version of your app.
  • Verify if is Travis CI testing the version it is supposed to be testing.
  • You simple love to version your stuff, and you like to see them in all your pages? That's cool too. :)
  • What's your use case? Tell us!

Features

Easily control you app version using a YAML config file

version: 
    current:
        major: 1
        minor: 0
        patch: 0
        format: '{$major}.{$minor}.{$patch}'
    commit:
        mode: number
        number: 701036

Use your git commit as your app commit hash/number

Configure it

commit:
    mode: git-local

And you may have an output like this

MyApp version 1.0.0 (commit a9c03f)

Or just use an incremental commit hash/number:

commit:
    mode: number
    number: 701036

To get

MyApp version 1.0.0 (commit 701036)

Easily increment your version numbers, using Artisan commands

php artisan version:commit

Which should print the new version number

New commit: 701037
MyApp version 1.0.0 (commit 701037) 

Available for all of them:

$ php artisan version:major   
$ php artisan version:minor   
$ php artisan version:patch   
$ php artisan version:build   

The output format is highly configurable

You can configure the :

format:
  version: "{$major}.{$minor}.{$patch}"
  full: "version {{'format.version'}} (commit {$commit})"
  compact: "v{{'format.version'}}-{$commit}"

Those are the results for full and compact formats

MyApp version 1.0.0 (commit 701037)
MyApp v1.0.0-701037

It gives you access to dynamic methods:

Version::compact()

And should you create a new one:

format:
  awesome: "awesome version {$major}.{$minor}.{$patch}"

It will also become callable:

Version::awesome()

A Facade is available

Version::version() // 1.2.25

Version::commit() // 703110

Version::major() // 1

Version::minor() // 2

Version::patch() // 25

Version::format('full') // version 1.0.0 (commit 703110)

Version::full() // version 1.0.0 (commit 703110) -- dynamic method

Version::format('compact') // v.1.0.0-703110

Version::compact() // v.1.0.0-703110 -- dynamic method

Instantiating it

If you prefer not to use the Façade:

dd(
    Version::format()
);

The best ways to instantiate it are:

A simple PHP object instantiation:

$version = new \PragmaRX\Version\Package\Version();

dd(
    $version->format()
);

Or to get an already instantiated Version object from the container:

dd(
    app(\PragmaRX\Version\Package\Version::class)->format()
);

But you have to make sure you published the config file

A Blade directive is also ready to be used in your views

You can use this directive to render a full version format:

@version

Or choose the format:

@version('full')
@version('compact')

You can configure the directive name:

blade_directive: printversion

Then

@printversion('compact')

Git tags

You can use your git tags as application versions, all you need is to set the version source to "git":

version_source: git

And if you add a commit hash/number to your tags:

$ git tag -a -f v0.1.1.3128

Version will use it as your app commit hash/number

Matching other version (git tags) formats

You probably only need to change the git version matcher

git:
  ...
  version:
    matcher: "/[V|v]*[ersion]*\\s*\\.*(\\d+)\\.(\\d+)\\.(\\d+)\\.*(\\w*)/"

So let's say you tag your releases as

2017120299
YYYYMMDD##

You can change your matcher to

git:
  version:
    matcher: "/(\d{4})(\d{2})(\d{2})(?:\d{2})/"

And remove dots from your formats:

format:
  compact: "v{$major}{$minor}{$patch}-{$commit}"

Using the current application version in your code

Here's a community example on how to send the app version number when logging an exception to Bugsnag:

<?php

namespace App\Exceptions;

use PragmaRX\Version\Package\Version;
use Bugsnag\BugsnagLaravel\Facades\Bugsnag;

class Handler extends ExceptionHandler
{
    public function report(Exception $exception)
    {
        if ($this->shouldReport($exception)) {
            Bugsnag::setAppVersion((new Version())->format('version'));
            Bugsnag::notifyException($exception);
        }
    }
}

Commit Timestamp

This package also lets you absorb the last commit timestamp or store the current date to the version.yml file. This is the format in the config file:

timestamp:
  year:
  month:
  day:
  hour:
  minute:
  second:
  timezone:

To absorb you only need to configure mode: absorb then execute:

php artisan version:absorb

But you can also set mode: increment then execute:

php artisan version:timestamp

To store the current date and time to the config file:

$ php artisan version:minor
New timestamp: 2019-09-16 18:23:03
MyApp version 2.3.2 (commit 49ffe2)

And you can then use it to show in your app:

Version::format('timestamp-full')

Artisan commands

Those are the commands you have at your disposal:

version:show

Show the current app version:

$ php artisan version:show
PragmaRX version 1.0.0 (build 701031)

$ php artisan version:show --format=compact
PragmaRX v1.0.0-701031

$ php artisan version:show --format=compact --suppress-app-name
v1.0.0-701031

version:absorb

You need to set mode: absorb.

Version can absorb git version and commit to the config file, so you can delete the .git folder and still keep your version and commit for fast access. You have to configure git_absorb in your config file:

commit:
  #...  
  git_absorb: git-local # "false", "git-local" or "git-remote"

And run it

$ php artisan version:absorb

The usual configuration setup to implement absorb is:

version_source: config             ## must be set as config
current:
    major: 1                       ## |
    minor: 0                       ## | --> will be changed by absorb
    patch: 0                       ## |
    git_absorb: git-local          ## configure to get from local or remote
commit:
    mode: number                   ## must be set as number
    number: f477c8                 ## will be changed by absorb
    git_absorb: git-local          ## configure to get from local or remote 

version:(major|minor|patch|commit)

You need to set mode: increment.

Increment the version item:

$ php artisan version:minor
New minor version: 5
MyApp version 1.5.0 (commit 701045)

Regex Matcher

This is the current regex used to break a version string:

^(?P<label>[v|V]*[er]*[sion]*)[\.|\s]*(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$

You can test it online: https://regex101.com/r/Ly7O1x/42

Install

Via Composer

$ composer require pragmarx/version

Then publish the configuration file you'll have to:

$ php artisan vendor:publish --provider="PragmaRX\Version\Package\ServiceProvider"

And you should be good to use it in your views:

@version

As git versions are cached, you can tell composer to refresh your version numbers every time an update or install occur, by adding the refresh command to post-autoload-dump:

"post-autoload-dump": [
    ...
    "@php artisan version:refresh"
]

[Optional] You may also can automated this process by set inside your .git/hooks/post-commit. It will automatic run the command once you have make a commit.

#!/bin/sh

php artisan version:refresh

If you are using Git commits on your commit numbers, you may have to add the git repository to your .env file

VERSION_GIT_REMOTE_REPOSITORY=https://github.com/antonioribeiro/version.git

If you are using git-local make sure the current folder is a git repository

Minimum requirements

  • Laravel 5.5
  • PHP 7.0

Testing

$ composer test

Troubleshooting

  • If you are having trouble to install because of symfony/router (3.3/3.4) or symfony/yaml (3.3/3.4), you can try to:
rm -rf vendor
rm composer.lock
composer install

Author

Antonio Carlos Ribeiro

License

This package is licensed under the MIT License - see the LICENSE file for details

Contributing

Pull requests and issues are welcome.

Comments
  • Can't Install

    Can't Install

    When I try to install using composer this is what i get:

    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Conclusion: remove symfony/routing v3.4.0
        - Conclusion: don't install symfony/routing v3.4.0
        - Installation request for pragmarx/version ^0.2.1 -> satisfiable by pragmarx/version[v0.2.1].
        - symfony/yaml v3.3.0 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.1 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.10 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.11 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.12 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.13 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.2 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.3 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.4 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.5 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.6 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.7 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.8 conflicts with symfony/routing[v3.4.0].
        - symfony/yaml v3.3.9 conflicts with symfony/routing[v3.4.0].
        - Installation request for symfony/routing (locked at v3.4.0) -> satisfiable by symfony/routing[v3.4.0].
        - pragmarx/version v0.2.1 requires pragmarx/yaml ^0.1 -> satisfiable by pragmarx/yaml[v0.1.0, v0.1.1, v0.1.2, v0.1.3].
        - pragmarx/yaml v0.1.3 requires symfony/yaml ^3.3 -> satisfiable by symfony/yaml[v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0].
        - pragmarx/yaml v0.1.2 requires symfony/yaml ^3.3 -> satisfiable by symfony/yaml[v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0].
        - pragmarx/yaml v0.1.1 requires symfony/yaml ~3.3 -> satisfiable by symfony/yaml[v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0].
        - pragmarx/yaml v0.1.0 requires symfony/yaml ~3.3 -> satisfiable by symfony/yaml[v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0].
        - Conclusion: don't install symfony/yaml v3.4.0|install symfony/yaml v3.3.0|install symfony/yaml v3.3.1|install symfony/yaml v3.3.10|install symfony/yaml v3.3.11|install symfony/yaml v3.3.12|install symfony/yaml v3.3.13|install symfony/yaml v3.3.2|install symfony/yaml v3.3.3|install symfony/yaml v3.3.4|install symfony/yaml v3.3.5|install symfony/yaml v3.3.6|install symfony/yaml v3.3.7|install symfony/yaml v3.3.8|install symfony/yaml v3.3.9
    
    
    Installation failed, reverting ./composer.json to its original content.
    
    opened by emiliopedrollo 8
  • Getting Exception on reading version.yml

    Getting Exception on reading version.yml

    I'm getting the following exception when I try to use any command:

    [Symfony\Component\Debug\Exception\FatalThrowableError]            
    Call to undefined method Symfony\Component\Yaml\Yaml::parseFile()  
    
    opened by emiliopedrollo 7
  • Write compact version via artisan

    Write compact version via artisan

    Hey! Great project! I've got a suggestion... it would be helpful to be able to write the compact version out using composer, e.g:

    php artisan version:show --compact > VERSION
    

    Part of my build process for packaging removes the .git directory, so it'd be nice to be able to bake that version number in. I've been using something like this in the past:

    git rev-parse --quiet --verify HEAD 2>/dev/null || echo VERSION
    

    It's not clear what might happen if the .git directory is gone. I'm trying to experiment, I'm moving the .git folder out but the command still works. Dunno what's happening there. But that's a different issue.

    It'd be nice to have the option to 1) write the version to a file 2) use the file if git isn't available. Maybe that means having the cache be able to write out to a specified file instead of wherever Laravel caches.

    opened by nabeelio 6
  • Support SemVer pre-release labels

    Support SemVer pre-release labels

    Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92. (Source: https://semver.org/#spec-item-9)

    Currently

    • When I create an annotated tag with a pre-release label (accordingly to the SemVer specs) -- e.g. v0.8.0-beta, the label is ignored.
    • When I update the matcher regex, the Git.php handle it as the build
        public function version($type)
        {
            $version = $this->extractVersion($this->getVersionFromGit());
    
            return [
                'major' => $this->getMatchedVersionItem($version, 1),
    
                'minor' => $this->getMatchedVersionItem($version, 2),
    
                'patch' => $this->getMatchedVersionItem($version, 3),
    
                'build' => $this->getMatchedVersionItem($version, 4),
            ][$type];
        }
    

    Proposal

    • Support SemVer pre-release labels as the 4th default property. Thus the build would be the 5th.

    (I intend myself to create a PR for that)

    opened by thicolares 5
  • Getting

    Getting "Class pragmarx.yaml does not exist"

    Hi,

    The package is working ok, but now I am trying to get the version number from a file that is under config/ directory (trying to set the release value on sentry.io configuration).

    Is there a way to use the library from other than a file under app directory ?

    (I think I am using 0.2.7)

    opened by gmartinez 5
  • Version inside of another config file.

    Version inside of another config file.

    I am needing a way to get the version inside of another config file. My thoughts on a new command that would be something like laravel's key:generate that would update the .env with the current version. Thoughts?

    opened by Medalink 5
  • version:absorb not reading latest commit hash

    version:absorb not reading latest commit hash

    When running version:refresh or version:absorb, it should update build.number in the YAML file, but I can't seem to get it to update. I am on the master branch. I delete the .git directory in the distribution tarball since it ends up being about 50mb, without it, the tar is about 8mb. But that's an aside.

    $ git log <snipped>
    
    commit d63f0ee2f8f1c9078621a83da8692fe3d56df3ae (HEAD -> master, origin/master, origin/HEAD)
    
    $ php artisan version:refresh
    
    Version was refreshed.
    phpvms version 7.0.0 (build 451e9e)
    
    $ php artisan version:absorb
    In Git.php line 46:
    
      No git tags not found in this repository
    

    451e9e is from Dec 15th (crazy I didn't notice till now...). It was working when just running this:

    php artisan version:show --format compact --suppress-app-name
    

    But, not it's not updating at all. I'm not sure what's changed. My config is this:

    version_source: config # "config", "git-local" or "git-remote"
    current:
      major: 7
      minor: 0
      patch: 0
      git_absorb: git-local
      format: "{$major}.{$minor}.{$patch}"
    build:
      mode: number
      number: 451e9e
      git_absorb: git-local
    git:
      git-local: "git rev-parse --verify HEAD"
      git-remote: "git ls-remote {$repository}"
      branch: "refs/heads/master"
      repository: "{{ env('VERSION_GIT_REMOTE_REPOSITORY') }}"
      version:
        git-local: "git describe"
        git-remote: "git ls-remote {$repository} | grep tags/ | grep -v {} | cut -d \/ -f 3 | sort --version-sort | tail -1"
        matcher: "/[V|v]*[ersion]*\\s*\\.*(\\d+)\\.(\\d+)\\.(\\d+)\\.*(\\w*)/"
    format:
      major: "{$major}"
      minor: "{$minor}"
      patch: "{$patch}"
      build: "{$build}"
      version: "{$major}.{$minor}.{$patch} (build {$build})"
      full: "version {{'format.version'}}"
      compact: "v{$major}.{$minor}.{$patch}-{$build}"
      ## add as many formats as you need !!!!
    
    opened by nabeelio 5
  • git-local build [commit] hash is not updating

    git-local build [commit] hash is not updating

    My debug environment has no issues with versioning (whatsoever) but my staging environment will not show the latest commit hash and will not use tags. I am happy to forego using tags, but the build hash is critical!

    The build number is not the one defaulted in the config, but an old commit?

    Any ideas what is wrong?

    version_source: config
    blade_directive: version
    current:
        major: 0
        minor: 1
        patch: 10
        format: '{$major}.{$minor}.{$patch}'
        git_absorb: false
    cache:
        enabled: true
        key: pragmarx-version
        time: 525600
    build:
        mode: git-local
        number: 701031
        length: 6
        increment_by: 1
        git_absorb: false
    git:
        git-local: 'git rev-parse --verify HEAD'
        git-remote: 'git ls-remote {$repository}'
        branch: refs/heads/master
        repository: 'hidden'
        version: { git-local: 'git describe', git-remote: 'git ls-remote {$repository} | grep tags/ | grep -v {} | cut -d / -f 3 | sort --version-sort | tail -1', matcher: '/[V|v]*[ersion]*\s*\.*(\d+)\.(\d+)\.(\d+)\.*(\w*)/' }
    format:
        major: '{$major}'
        minor: '{$minor}'
        patch: '{$patch}'
        build: '{$build}'
        version: '{$major}.{$minor}.{$patch} (build {$build})'
        full: 'version {$major}.{$minor}.{$patch} (build {$build})'
        compact: 'v{$major}.{$minor}.{$patch}-{$build}'
    
    opened by allw1994 4
  • No git tags found in this repository

    No git tags found in this repository

    I can't ever get this to work on my staging server. Working fine on local using git-local.

    @php artisan version:refresh In Git.php line 47:

    No git tags found in this repository

    Script @php artisan version:refresh handling the post-autoload-dump event returned with error code 1

    Here is my version.yml file version_yml_-roastar_com-___documents_laravel_homestead_sites_roastar_com

    opened by camaech 4
  • Instantiating xml file from IoC Container

    Instantiating xml file from IoC Container

    When trying to instantiate the Version model, I get this error. Class pragmarx.yaml does not exist

    Seems the Model is tryting to get an XML file from the IoC that is not registered.

    When digging deeper $yaml = $this->instantiateClass($yaml ?: app('pragmarx.yaml'), 'yaml'); This line is the culprit, and $yaml parameter seems off here.

    $yaml = $this->instantiateClass($config ?: app('pragmarx.yaml'), 'yaml'); This seems a better option as its get the propery out of the config

    opened by petermein 4
  • Thoughts on Changelog..?

    Thoughts on Changelog..?

    Hi! Looks like a neat package! Though i feel like versioning also comes with changelogs? What are your thoughts on that and is it anything you plan on adding as well?

    opened by blomdahldaniel 4
  • Version is in git absorb mode, cannot be incremented

    Version is in git absorb mode, cannot be incremented

    When I run command likephp artisan version:patch to update version, I got error "version is in git absorb mode, cannot be incremented". It does not update the value of version.yml file. It worked fine one my local but does not work on live environment.

    opened by polash62 0
  • git absorb not updating yml with current commit hash

    git absorb not updating yml with current commit hash

    Hi there, I have set the mode to absorb, and am using git tags as well. When I do a php artisan version:absorb, the proper git tag gets absorbed but not the current commit hash, how do I fix?

    opened by firecentaur 0
  • reset major, minor and patch values

    reset major, minor and patch values

    Hey there, I'm using the package for a while on a project but now I'm trying to reset the values like minor and patch to zero. For example currently I have v 0.0.12, and with artisan version:patch get v 0.0.13. So far so good, now if I'm planning to release a new version like v 1.0.0...how can I reset the patch value? or automatically on minor or major increments it's reseted?

    opened by drbornot 0
Owner
Antonio Carlos Ribeiro
Antonio Carlos Ribeiro
A simple blog app where a user can signup , login, like a post , delete a post , edit a post. The app is built using laravel , tailwind css and postgres

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Nahom_zd 1 Mar 6, 2022
A web app for detecting backend technologies used in a web app, Based on wappalyzer node module

About Techdetector This a web fingerprinting application, it detects back end technologies of a given domain by using the node module wappalyzer. And

Shobi 17 Dec 30, 2022
CV-Resumes-App is helped us to build resume .. you can help me to improve this app...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022
Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

null 9 Dec 14, 2022
Laravel Breadcrumbs - An easy way to add breadcrumbs to your @Laravel app.

Introduction Breadcrumbs display a list of links indicating the position of the current page in the whole site hierarchy. For example, breadcrumbs lik

Alexandr Chernyaev 269 Dec 21, 2022
Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and User Authentication.

Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and

Jeremy Kenedy 35 Dec 19, 2022
Laravel messenger. A full messenger suite for your new / existing laravel app

Laravel messenger. A full messenger suite for your new / existing laravel app! Private and group threads between multiple models, with real-time messaging, reactions, attachments, calling, chat bots, and more!

Richard  Tippin 290 Dec 30, 2022
Laravel Real-time chat app demo with React, Laravel Echo, Breeze, Socket.io, Redis, Inertia.js, TailwindCSS stack.

Laravel Real-time Chat App You can build yours from scratch with the following Medium article https://medium.com/@sinan.bekar/build-a-real-time-chat-a

Sinan Bekar 9 Oct 3, 2022
Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create

Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create. The directives you want Forman to perform are outlined in a JSON based template file.

Indatus 145 Apr 13, 2022
Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App.

OvalFi Laravel Package Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App. Installation You can in

Paul Adams 2 Sep 8, 2022
Log activity inside your Laravel app

Log activity inside your Laravel app The spatie/laravel-activitylog package provides easy to use functions to log the activities of the users of your

Spatie 4.6k Jan 7, 2023
Make your Laravel app comply with the crazy EU cookie law

Make your Laravel app comply with the crazy EU cookie law All sites owned by EU citizens or targeted towards EU citizens must comply with a crazy EU l

Spatie 1.2k Jan 4, 2023
Add tags and taggable behaviour to your Laravel app

Add tags and taggable behaviour to a Laravel app This package offers taggable behaviour for your models. After the package is installed the only thing

Spatie 1.4k Dec 29, 2022
Laravel Backend for Learnbot app

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Mobile & Backend developer 4 May 18, 2021
Make your Laravel app comply with the refuse/accept cookie law

Make your Laravel app comply with the refuse/accept cookie law All sites owned by EU citizens or targeted towards EU citizens must comply with a crazy

RETINENS - Multimedia solutions 37 Mar 22, 2022
Add variables to the payload of all jobs in a Laravel app

Inject extra info to the payloads of all jobs in a Laravel app This package makes it easy to inject things in every job. Imagine that you want to have

Spatie 62 Dec 9, 2022
A REST client inside your Laravel app

Laravel Compass is an elegant REST assistant for the Laravel framework that you can use to test API calls and create API documentation. it provides automatically endpoints for GET, POST, PUT/PATCH, DELETE, various auth mechanisms, and other utility endpoints based on Laravel routes in your project.

David H. Sianturi 1.2k Dec 31, 2022
Easily capture every incoming request and the corresponding outgoing response in your Laravel app.

Easily capture every incoming request and the corresponding outgoing response in your Laravel app. This package is designed to work only with the Lara

Mark Townsend 22 Nov 15, 2022
Use Kafka Producers and Consumers in your laravel app with ease!

Laravel Kafka Do you use Kafka in your laravel packages? All packages I've seen until today, including some built by myself, does not provide a nice s

Mateus Junges 325 Jan 5, 2023