PHPackages                             appointer/deep-space-comlink - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. appointer/deep-space-comlink

AbandonedArchivedLibrary[HTTP &amp; Networking](/categories/http)

appointer/deep-space-comlink
============================

A package to handle web push in a sophisticated way.

1.0.8(8y ago)0172MITPHPPHP &gt;=7.1.0

Since Jun 5Pushed 8y ago2 watchersCompare

[ Source](https://github.com/appointer/deep-space-comlink)[ Packagist](https://packagist.org/packages/appointer/deep-space-comlink)[ RSS](/packages/appointer-deep-space-comlink/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (6)Dependencies (7)Versions (11)Used By (0)

deep space comlink [![Build Status](https://camo.githubusercontent.com/87ee038eddb6560e1e17ddd729847bfb06d1f34e5878fd8708f9996d0fd94422/68747470733a2f2f636972636c6563692e636f6d2f67682f6170706f696e7465722f646565702d73706163652d636f6d6c696e6b2e7376673f7374796c653d737667)](https://circleci.com/gh/appointer/deep-space-comlink)
====================================================================================================================================================================================================================================================================================================================================

[](#deep-space-comlink-)

This libary will help to integrate all necessary boilerplate to support web push notifications. The primary target is to integrate a nice API around the native macOS push posibillities through Safari.

### Other approaches and inspiration

[](#other-approaches-and-inspiration)

It all started with the search for a feasible way to create Safari `*.pushpackages`. After hours and hours of searching we decided to build our own solution for this issue. We found inspiration on some projects, mainly [jwage's php-apns](https://github.com/jwage/php-apns). Credits to him for his work.

Installation
------------

[](#installation)

Navigate to your project and run the composer command:

```
composer require appointer/deep-space-comlink
```

The next step is to register the service provider:

```
// config/app.php
'providers' => [
    ...
    \Appointer\DeepSpaceComlink\ComlinkServiceProvider::class,
];
```

Finally, you have to register the routes of this package:

```
// app/Providers/RouteServiceProvider.php
public function boot()
{
    parent::boot();

    Appointer\DeepSpaceComlink\DeepSpaceComlink::routes();
}
```

**Notice** If you want to, you can publish the config or the template for the pushpackage. This gives you full control over icons and application title amongst other things. Use the following artisan command:

```
php artisan vendor:publish --provider="Appointer\DeepSpaceComlink\ComlinkServiceProvider" --tag="config"
php artisan vendor:publish --provider="Appointer\DeepSpaceComlink\ComlinkServiceProvider" --tag="pushpackage"
```

### Implementing the javascript

[](#implementing-the-javascript)

No worries, its a piece of cake. We are using `axios` as an example HTTP client. If you got a stock laravel frontend, you probably got it installed already. You just have to replace your current locale population with the following implementation:

```
// Example is taken from https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/NotificationProgrammingGuideForWebsites/PushNotifications/PushNotifications.html

var p = document.getElementById("foo");
p.onclick = function() {
    // Ensure that the user can receive Safari Push Notifications.
    if ('safari' in window && 'pushNotification' in window.safari) {
        var permissionData = window.safari.pushNotification.permission('web.com.example.domain');
        checkRemotePermission(permissionData);
    }
};

var checkRemotePermission = function (permissionData) {
    if (permissionData.permission === 'default') {
        // This is a new web service URL and its validity is unknown.
        window.safari.pushNotification.requestPermission(
            'https://domain.example.com/dsc', // The web service URL.
            'web.com.example.domain',     // The Website Push ID.
            {}, // Data that you choose to send to your server to help you identify the user.
            checkRemotePermission         // The callback function.
        );
    }
    else if (permissionData.permission === 'denied') {
        // The user said no.
    }
    else if (permissionData.permission === 'granted') {
        // The web service URL is a valid push provider, and the user said yes.
        // permissionData.deviceToken is now available to use.
    }
};
```

Testing
-------

[](#testing)

Tests can be executed using the command:

```
./vendor/bin/phpunit
```

Contibuting
-----------

[](#contibuting)

Every help is very welcome. Do you got an issue, or having a great idea for extending this project? Feel free to open a pull request or submit an issue.

If you file a bug report, your issue should contain a title and a clear description of the issue. You should also include as much relevant information as possible and a code sample that demonstrates the issue. The goal of a bug report is to make it easy for yourself - and others - to replicate the bug and develop a fix.

Please use the [issue tracker](https://github.com/appointer/deep-space-comlink/issues) to report issues.

License
-------

[](#license)

This library is open-sourced software licensed under the [MIT](https://github.com/appointer/deep-space-comlink/blob/master/LICENSE) license.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

10

Last Release

3262d ago

Major Versions

0.1 → 1.02017-06-05

### Community

Maintainers

![](https://www.gravatar.com/avatar/fd6c5ce10904f909a365a4f81872471d56e56461ff0daf62a2ea93f0a6a4db58?d=identicon)[voydz](/maintainers/voydz)

---

Top Contributors

[![voydz](https://avatars.githubusercontent.com/u/373533?v=4)](https://github.com/voydz "voydz (13 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/appointer-deep-space-comlink/health.svg)

```
[![Health](https://phpackages.com/badges/appointer-deep-space-comlink/health.svg)](https://phpackages.com/packages/appointer-deep-space-comlink)
```

###  Alternatives

[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[omniphx/forrest

A Laravel library for Salesforce

2724.4M8](/packages/omniphx-forrest)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

44643.1k1](/packages/pressbooks-pressbooks)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
