Download the PHP package zaber-dev/laravel-reservation without Composer

On this page you can find all versions of the php package zaber-dev/laravel-reservation. 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-reservation

Laravel Reservation

Latest Version on Packagist Run Tests Total Downloads PHP Version Require License

Supports: Laravel 11, 12 & 13+ • PHP 8.2+ • Redis • Memcached • Database

Application-level resource reservation for Laravel. Temporarily hold resources, manage reservation lifecycles, and prevent double-bookings with cache or database storage.

Manage reservations with a clean, expressive API using cache or persistent database storage, attach them directly to Eloquent models, protect routes with declarative middleware, and extend the package with custom storage backends.

Unlike Cache::lock(), which provides short-lived mutual exclusion, Laravel Reservation manages complete reservation lifecycles—from temporary holds to confirmation, cancellation, and expiration.


Quick Example


Documentation


Common Use Cases

Laravel Reservation is ideal for:


Why not Cache::lock()?

Laravel's Cache::lock() is excellent for preventing concurrent execution within a request.

Laravel Reservation solves a different problem. It models resource availability, not just concurrency.

It manages stateful resource reservations that survive beyond a single request and follow a complete booking lifecycle.

Typical examples include:

where a resource may remain temporarily held for several minutes before eventually being confirmed or released.

Feature Cache::lock() Laravel Reservation
Primary Purpose Low-level atomic mutex Stateful resource holds & booking lifecycles
Fluent Builder API (Reservation::for()->hold()) ❌ Manual Expressive & Clean
First-Class Eloquent Integration ($seat->reserve()) Native (HasReservations)
Driver-Based Architecture (cache & database) ❌ Cache Only Both Supported
Multi-Step Lifecycle Tracking (held/confirmed) Built-in (held, confirmed, cancelled)
Success-Only / Auto-Cancel Route Middleware Built-in (ReserveResource)
Immutable DTOs (ReservationInfo) Strict (CarbonImmutable)
Automatic Database Pruning (model:prune) N/A Built-in (Prunable)
Polymorphic Target Scoping ❌ Manual Keys Automatic Key Mapping
Custom Driver Extensibility (Reservation::extend()) Closure / Container
Event Dispatching (ReservationHeld / Confirmed) Configurable Events

Features


Installation

Ready to get started? Install the package with Composer:

Publish the configuration and database migrations:

Run migrations if you intend to use the database driver:


Configuration

The configuration file config/reservations.php allows you to define your default storage driver, driver parameters, and event dispatching behaviors:


Usage Guide

1. The Fluent Reservation API

The Reservation facade provides an expressive builder interface for holding, confirming, cancelling, and inspecting reservations.

Holding & Confirming a Resource

Cancelling a Hold

If the customer aborts checkout or payment fails:

Inspecting Status


2. Eloquent Model Integration (HasReservations)

Add the HasReservations trait to any resource Eloquent model (such as Seat, Room, or InventoryItem) to manage reservations directly off the entity:

You can now interact directly with your model instance:

Polymorphic Database Querying

When using the database driver, HasReservations also exposes a reservations() polymorphic relationship, allowing direct querying and bulk management:


3. Route Middleware

Protect booking endpoints declaratively without writing boilerplate checks in your controllers using the ReserveResource middleware:

How the Middleware Works:


4. Working with Storage Backends (using & driver)

By default, the package uses the storage backend configured in config/reservations.php. You can switch storage backends on the fly per request or action:

Registering Custom Storage Backends

You can extend the ReservationManager with your own storage backends (e.g., DynamoDB, MongoDB) in your AppServiceProvider:


5. Database Pruning (Prunable)

When using the database driver, expired or cancelled records (status in ('cancelled', 'expired')) are automatically marked for pruning via Laravel's Prunable trait on the ZaberDev\Reservation\Models\ReservationModel model.

To clean up old records automatically, schedule Laravel's model:prune command in your console.php or Kernel.php:


6. Events

Whenever a reservation changes state, the package dispatches strongly typed events if enabled (reservations.events.dispatch = true):

You can listen to these in your EventServiceProvider for inventory metrics, webhook notifications, or customer emails.


Agentic Development with Laravel Boost

Laravel Reservation includes built-in AI support and architectural skills engineered for Laravel Boost.

When using AI coding assistants (such as Cursor, Claude Code, or GitHub Copilot connected via the Boost MCP server), your AI agent can automatically load specialized design patterns and exact API rules for implementing stateful resource reservations, hold/confirm lifecycles, and inventory holds with our package.

Automatic Skill Installation

When Laravel Boost (laravel/boost) is installed in your application, our package AI skill is automatically discovered and published during package installation and updates (php artisan boost:install or php artisan boost:update).

If you install laravel-reservation into an existing Boost-enabled project, our service provider also automatically synchronizes the skill directly into your .ai/skills/laravel-reservation directory on boot with zero configuration needed.

Manual Skill Installation

If you prefer to install or update the AI skill manually, you can use any of the following commands:

What the AI Skill Teaches Your Assistant

By enabling our skill, your AI assistant will strictly follow package conventions, including:


Related Packages

This package is part of the ZaberDev Laravel Ecosystem (Laravel Productivity Toolkit) — a cohesive suite of high-level application primitives engineered for concurrency, state management, and resource allocation.

Explore the complete directory of packages, detailed use cases, and documentation in our Ecosystem Index Hub.


Testing & Quality

Run the comprehensive PHPUnit test suite locally:


Contributing

Thank you for considering contributing! Please ensure any pull requests include thorough PHPUnit tests covering unit, feature, and driver integration scenarios.


License

The MIT License (MIT). Please see LICENSE.md for more information.


Built with ❤️ as part of the ZaberDev Laravel Ecosystem.


All versions of laravel-reservation with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/contracts Version ^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^10.0|^11.0|^12.0|^13.0
nesbot/carbon Version ^2.63|^3.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 zaber-dev/laravel-reservation contains the following files

Loading the files please wait ...