Download the PHP package laravel/symfony-on-cloud without Composer

On this page you can find all versions of the php package laravel/symfony-on-cloud. 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 symfony-on-cloud

laravel/symfony-on-cloud

Bring Laravel Cloud features to a Symfony application.

Managed queues is the first feature; more Laravel Cloud capabilities will follow under the same laravel_cloud config key.

Installation

Then register the bundle in config/bundles.php:

The package ships no Symfony Flex recipe, so the bundle has to be registered manually for now.

Managed queues

Run Laravel Cloud managed queues on top of Symfony Messenger.

The bundle ships a ready-made cloud transport that always points at your managed queue — nothing to declare, no DSN to wire up. Just route to it:

On Cloud that's all you need: the injected config wires everything up, so it just works — no extra setup — and throughput, duration and failures show up in the Laravel Cloud dashboard automatically. To run it locally, see Local development.

Already running Messenger? Cloud injects MESSENGER_TRANSPORT_DSN=laravel-cloud://managed-queue, so an app using the conventional async transport (dsn: '%env(MESSENGER_TRANSPORT_DSN)%') runs on Cloud unchanged.

Multiple queues

A Laravel Cloud environment can have several managed queues (for example default and critical), each backed by its own SQS queue and its own isolated workers. You keep the single cloud transport and reference a queue by its name on both sides, rather than Symfony's one-transport-per-queue convention.

Dispatch to a specific queue with CloudQueueStamp — the same pattern as Symfony's own AmqpStamp:

Without a stamp, a message goes to the environment's default queue. To route by message type, add a middleware that attaches the stamp based on the class.

On Cloud each managed queue gets its own isolated workers, run for you. A CloudQueueStamp('critical') dispatch is handled by the critical workers and reported against critical in the dashboard, so per-queue metrics line up with where you sent the work.

FIFO queues

A managed queue whose name ends in .fifo is a FIFO queue: messages are delivered in strict order and deduplicated. Target one exactly like any other queue — by its .fifo name:

SQS requires every FIFO message to carry a message group ID (messages sharing a group are ordered relative to each other) and a deduplication ID. By default the bundle sends SQS-safe values — the group ID is the queue name and the deduplication ID is unique per message — so this works with no extra setup.

To control ordering scope or deduplicate by a stable key, add a CloudFifoStamp alongside the queue stamp (the field names match Symfony's AmazonSqsFifoStamp):

A CloudFifoStamp is only valid on a .fifo queue; applying it to a standard queue throws rather than being silently ignored. FIFO queues don't support a per-message delivery delay at all, so a caller-set DelayStamp is rejected (see Delays below).

Fair queues

SQS fair queues keep one noisy tenant from starving the others on a busy queue. On a standard queue, attaching a message group ID marks each message with the tenant it belongs to (a customer, client app, or request type); SQS then spreads consumer capacity fairly across groups when one tenant builds a backlog. Fairness is automatic and server-side — there's nothing to enable and no change to your consumers.

Unlike FIFO, the group ID here is only a tenant key: messages in the same group still process in parallel at full throughput, and there is no ordering or deduplication. Attach a CloudMessageGroupStamp:

To attach the tenant key everywhere without repeating it at each dispatch, add a middleware that stamps CloudMessageGroupStamp from the message (the tenant on the job, the authenticated user, etc.).

The two stamps mirror the two queue models and don't mix: CloudMessageGroupStamp is for fair queues (standard) and is rejected on a .fifo queue, where the group is an ordering scope set via CloudFifoStamp instead.

Delays

A DelayStamp on a standard queue maps to an SQS per-message delivery delay, which SQS hard-caps at 15 minutes. Asking for a longer delay is unsatisfiable, so the transport throws rather than silently delivering after 15 minutes — a job that must run in an hour shouldn't quietly run in fifteen.

FIFO queues don't support a per-message delay at all, so a DelayStamp on a .fifo queue is rejected outright — same principle, same loud failure.

(This is about dispatch delays only. Retry backoff is a separate path that isn't bound by the 15-minute cap — see Retries.)

Retries

When a handler fails, the transport releases the message back to SQS for native redelivery via the visibility timeout, rather than re-sending a fresh copy. The original message stays put and SQS redelivers it after the backoff — so retries are never re-dispatched, the backoff can run up to SQS's 12-hour visibility ceiling (not the 15-minute send cap), and it works unchanged on FIFO queues.

Retries use Symfony Messenger's own retry strategy — there's no separate config to learn, and UnrecoverableExceptionInterface is honored (an unrecoverable error, or a handler failure wrapping one, skips straight to failure). Tune it on the cloud transport like any other Messenger transport:

(You only add the retry_strategy — the dsn comes from the ready-made cloud transport. Omit the block entirely to use Messenger's defaults: 3 retries.)

A job that exhausts its retries (or throws an unrecoverable exception) is deleted and recorded as a failed job, surfacing in the Laravel Cloud dashboard.

Local development

The cloud transport is just a default, so an app-defined transport of the same name wins. To process jobs inline locally without SQS, override it in dev:

To turn the feature off entirely, set laravel_cloud.queue.enabled: false.

Testing

License

laravel/symfony-on-cloud is open-sourced software licensed under the MIT license.


All versions of symfony-on-cloud with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
aws/aws-sdk-php Version ^3.0
guzzlehttp/guzzle Version ^7.0
symfony/config Version ^7.0 || ^8.0
symfony/dependency-injection Version ^7.0 || ^8.0
symfony/event-dispatcher Version ^7.0 || ^8.0
symfony/http-kernel Version ^7.0 || ^8.0
symfony/messenger Version ^7.0 || ^8.0
symfony/uid Version ^7.0 || ^8.0
symfony/console Version ^7.0 || ^8.0
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 laravel/symfony-on-cloud contains the following files

Loading the files please wait ...