1. Go to this page and download the library: Download masterix21/laravel-bookings library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
masterix21 / laravel-bookings example snippets
use Masterix21\Bookings\Models\Concerns\IsBookable;
use Masterix21\Bookings\Models\Concerns\Bookable;
class Room extends Model implements Bookable
{
use IsBookable;
protected $fillable = ['name', 'capacity'];
}
use Masterix21\Bookings\Models\BookableResource;
// Create a bookable resource for your room
$room = Room::create(['name' => 'Deluxe Suite', 'capacity' => 4]);
$bookableResource = BookableResource::create([
'resource_type' => Room::class,
'resource_id' => $room->id,
'max' => 1, // Maximum concurrent bookings
'size' => 4, // Resource capacity
'is_bookable' => true,
'is_visible' => true,
]);
use Masterix21\Bookings\Actions\BookResource;
use Spatie\Period\Period;
use Spatie\Period\PeriodCollection;
// Create booking periods
$periods = PeriodCollection::make([
Period::make('2024-12-25', '2024-12-27'), // 2 nights
]);
// Book the resource
$booking = (new BookResource())->run(
periods: $periods,
bookableResource: $bookableResource,
booker: auth()->user(), // The user making the booking
label: 'Christmas Holiday',
note: 'Special dietary
use Masterix21\Bookings\Models\BookablePlanning;
BookablePlanning::create([
'bookable_resource_id' => $bookableResource->id,
'monday' => true,
'tuesday' => true,
'wednesday' => true,
'thursday' => true,
'friday' => true,
'saturday' => false, // Closed on weekends
'sunday' => false,
'starts_at' => '2024-01-01 09:00:00', // Available from 9 AM
'ends_at' => '2024-12-31 18:00:00', // Until 6 PM
]);
use Masterix21\Bookings\Events\BookingCompleted;
use Masterix21\Bookings\Events\BookingFailed;
// In your EventServiceProvider
protected $listen = [
BookingCompleted::class => [
SendBookingConfirmationEmail::class,
UpdateInventory::class,
],
BookingFailed::class => [
LogBookingFailure::class,
NotifyAdministrators::class,
],
];
// Check if a resource is booked at a specific time
$isBooked = $room->isBookedAt(now());
// Get booked periods for a specific date
$bookedPeriods = $room->bookedPeriodsOfDate(today());
// Get all bookings for a resource
$bookings = $room->bookings;