Download the PHP package andydefer/laravel-roster without Composer

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

Laravel Roster

PHP Version Laravel Version License Tests Coverage

Roster is a comprehensive Laravel package for advanced scheduling, availability, and booking management. Built with a robust architecture, it handles recurring availability, booked slots, and impediments with exhaustive business validation.

๐Ÿ“ฆ Installation

Publish package resources:

Or manually:

๐Ÿš€ Quick Start

1. Add the trait to your models

2. Create recurring availabilities

3. Schedule appointments

4. Manage temporary unavailability

5. Search for available slots

๐Ÿ›ก๏ธ Performance Protection: Absolute Minimum Duration

To prevent infinite loops and performance degradation, Roster enforces an absolute minimum duration of 10 minutes for ALL entity types (Availability, Schedule, Impediment).

Why 10 minutes?

When searching for available slots, the system generates time slots based on the duration. A duration that is too small would generate an enormous number of iterations:

Duration Generated Slots (1 year) Performance Impact
1 minute ~525,600 slots ๐Ÿ”ด Infinite loop risk - System overload, memory exhaustion
5 minutes ~105,120 slots ๐ŸŸ  Very slow - Timeout possible, poor user experience
10 minutes ~52,560 slots ๐ŸŸข Optimal - Fast and stable
15 minutes ~35,040 slots ๐ŸŸข Excellent - Best performance
30 minutes ~17,520 slots ๐ŸŸข Perfect - Maximum efficiency

Technical Protection Implementation

The protection is enforced at the lowest level of the validation system:

What happens if you try to configure less than 10 minutes?

Validation in Action

๐Ÿ”— Polymorphic Scheduling Link System

Roster includes an advanced system that allows any Eloquent model to be associated with schedules with customizable metadata.

Attach resources to schedules

Manage attached resources

Direct usage from models

Eloquent relationships

Advanced use cases

1. Operating room management

2. Shared resource booking

3. Complex metadata for tracking

๐Ÿ“‹ Model Query Methods (HasRoster Trait)

The HasRoster trait includes methods to retrieve impediments and schedules of a model within a given period.

Added Methods

Simple Example

Practical Use Case

๐Ÿ“– Core Concepts

Immutability Principle

Roster prevents direct model mutations to ensure data integrity. All operations must go through appropriate services:

Single-action context

Each service is designed for a single action with its own context:

The 3 main entities

  1. Availability: Defines when a resource is available (days, times, period)
  2. Schedule: Represents a booked slot in an availability
  3. Impediment: Temporarily blocks an availability

๐Ÿ›ก๏ธ Secure Architecture

Mutation access control

The system uses two contexts to control access:

Secure helpers

The availability_for(), schedule_for(), and impediment_for() helpers automatically create the necessary context:

๐Ÿ” Advanced Search and Data Consistency

first() method for targeted search

Automatic days consistency

The system automatically ensures consistency between specified days and validity periods:

Standardized days sorting

Utility functions always return days in standard week order (Monday โ†’ Sunday):

๐ŸŽฏ Exhaustive Business Validation

Roster includes 17 validation rules that guarantee system consistency:

Main rules:

Rule visualization:

๐Ÿ“Š Real-world Usage Examples

Medical clinic management

Room booking system

Recurrent impediment management

๐Ÿ”ง Complete API

Availability Service

Schedule Service

Impediment Service

โš™๏ธ Configuration

Configuration file (config/roster.php)

Environment variables

๐Ÿงช Comprehensive Tests

The package includes 2300 tests covering all scenarios:

Tested scenarios:

๐Ÿšจ Error Handling

Duration validation error example

Reconciliation warning handling

๐Ÿ“Š Development Tools

Validation rule debugging

Cache management

๐Ÿค Contribution

  1. Fork the repository
  2. Create a branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Run tests

๐Ÿ“„ License

This package is open-source and available under the MIT license.

๐Ÿ”— Useful Links


Roster - A professional solution for advanced scheduling management, designed for critical applications where every minute counts. โš•๏ธโฐโœจ

With advanced search features, data consistency, exhaustive business validation, automatic protection against infinite loops (10 minutes absolute minimum duration), and a comprehensive polymorphic link system, Roster ensures the integrity of your scheduling systems in the most demanding environments.


All versions of laravel-roster with dependencies

PHP Build Version
Package Version
Requires illuminate/database Version ^12.0
illuminate/support Version ^12.0
laravel/framework Version ^12.0
php Version ^8.2
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 andydefer/laravel-roster contains the following files

Loading the files please wait ...