Skip to content

Installation

mozrin edited this page Nov 9, 2026 · 7 revisions

Installation

Requirements

  • Laravel 12 or 13 with PHP 8.4.27+ or 8.5.12+.
  • Persisted UUID recipient models. Laravel's standard Notifiable trait remains compatible.
  • A transactional default database connection shared by package records and recipient models. Do not split these models across databases or connections.
  • A durable Laravel queue and a running worker; a scheduler for recovery and cleanup.
  • PHP extensions required by Laravel, Kreait and Pushok, including cURL, OpenSSL, JSON and the selected database driver. Pest development additionally needs its usual XML/DOM/mbstring extensions.

This package deliberately has no Laravel application scaffold, artisan application, controllers or routes.

Composer

The package is registered on Packagist, and its GitHub repository is public. No custom VCS repository or GitHub credential is required for the public package.

The current source tag is 0.9.0 “Whisper.” Install it for a reproducible integration:

composer require moztopia/notifications:0.9.0

Composer can also select the current tagged version normally:

composer require moztopia/notifications

The immutable 0.9.0 Whisper release is published and available through Packagist. Main promotion PR #12 is merged and main is the default branch. Neither the tag nor automated tests establish real-device verification or production readiness. Use dev-develop only for deliberate evaluation of moving changes.

Confirm the installed version:

composer show moztopia/notifications

If Composer reports the requested version unavailable, confirm that Packagist has indexed its Git tag and refresh the local Composer metadata cache if needed. Do not lower global stability settings to hide a missing release. For PHP/Laravel constraint conflicts, compare the host runtime and dependencies with package requirements rather than bypassing platform checks.

Upgrading from 0.0.2 introduces no schema or configuration-key change. Preserve the already applied initial migration and existing data. Read the canonical changelog and upgrade notes.

Service provider and configuration

Laravel discovers Moztopia\Notifications\NotificationsServiceProvider automatically. If discovery is disabled, register that class in the consuming application's bootstrap/providers.php.

php artisan vendor:publish --tag=moztopia-notifications-config
php artisan vendor:publish --tag=moztopia-notifications-migrations
php artisan migrate

The single publishable migration creates five tables:

  • moztopia_notification_history
  • moztopia_notification_preferences
  • moztopia_notification_devices
  • moztopia_notification_messages
  • moztopia_notification_deliveries

It leaves an existing application notifications table untouched. The package history model extends Laravel's DatabaseNotification; use NotificationHistoryService for package history rather than $user->notifications, which belongs to the host application's usual notification table.

The migration's rollback drops all five package tables and their data. Do not roll back a production installation as an uninstall shortcut. Future schema changes after a published version must use forward migrations.

Configure credentials, start the worker and recovery schedule, then register devices through your own authenticated routes.

Clone this wiki locally