Download the PHP package asseco-voice/laravel-stomp without Composer

On this page you can find all versions of the php package asseco-voice/laravel-stomp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-stomp

Laravel Stomp driver

This package enables usage of Stomp driver for queueing natively inside Laravel.

Installation

Package is installed through composer and is automatically registered as a Laravel service provider.

composer require asseco-voice/laravel-stomp

In order to connect it to your queue you need to change queue connection driver in .env file:

Connection variables:

You can subscribe to queues to read from or to write to with:

Both have same nomenclature when it comes to subscribing:

Subscribing with client acknowledgement option (ENV variables):

Options for Laravel worker:

You can see all other available .env variables, their defaults and usage explanation within the config file.

If horizon is used as worker, library will work side-by-side with Laravel Horizon and basic configuration will be automatically resolved:

If you need a custom configuration, publish Horizon config (check Horizon documentation) and adapt to your needs.

Non-Laravel events

It is possible to handle outside events as well. By default, if event is not a standard Laravel event it gets re-thrown as a stomp.* event with payload it received.

If the frame you received belongs to a topic::test_queue queue, system will throw a stomp.topic.test_queue event, otherwise if for some reason the queue name can't be parsed it will dispatch a stomp.event event.

You can listen to it by including this in EventServiceProvider::boot():

Failed jobs

For the sake of simplicity and brevity StompJob class is defined in a way to utilize Laravel tries and backoff properties out of the box (official documentation).

Upon failure, jobs will retry 5 times before being written to failed_jobs table.

Each subsequent attempt will be tried in attempt^2 seconds, meaning if it is a third attempt, it will retry in 9s after the previous job failure.

Note that job properties by default have precedence over CLI commands, thus with these defaults in place the flags --tries and --backoff will be overridden.

You can turn off this behavior with following env variables:

Job will be re-queued to the queue it came from.

Headers

Due to the fact that Laravel doesn't save event headers to failed_jobs table, this package is circumventing this by storing headers as a part of the payload in _headers key. This is all done automatically behind the scenes so no interaction is needed with it.

If you want to append additional headers to your events, you can do so by implementing HasHeaders interface.

Raw data

In case you need your service to communicate with external non-Laravel services it is possible to circumvent Laravel event wrapping by implementing HasRawData interface. This will enable you to provide a custom payload to the broker.

Logs

Logs are turned off by default. You can include them by setting env key STOMP_LOGS=true.

In case you want to change the default log manager, it can be done in the asseco-stomp config file. The new log manager must extend Illuminate\Log\LogManager.

Usage

You can use library now like being native Laravel queue. For usage, you can check official Laravel queue documentation.


All versions of laravel-stomp with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
laravel/framework Version ^10.0
stomp-php/stomp-php Version ^5.0
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package asseco-voice/laravel-stomp contains the following files

Loading the files please wait ....