datastar/sdk/php
Ben Croker c35b85ce4e
Remove settling from SSE events and SDKs (#764)
* Remove settling

* Add release note

* Bump PHP SDK version

* Remove from composer
2025-03-15 16:25:33 -06:00
..
.github v0.21.0-beta1 2024-12-05 09:09:04 -08:00
src Remove settling from SSE events and SDKs (#764) 2025-03-15 16:25:33 -06:00
tests Remove settling from SSE events and SDKs (#764) 2025-03-15 16:25:33 -06:00
.gitattributes v0.21.0-beta1 2024-12-05 09:09:04 -08:00
.gitignore v0.21.0-beta1 2024-12-05 09:09:04 -08:00
LICENSE.md Update PHP SDK 2025-01-02 07:36:34 -06:00
README.md Remove settling from SSE events and SDKs (#764) 2025-03-15 16:25:33 -06:00
composer.json Remove settling from SSE events and SDKs (#764) 2025-03-15 16:25:33 -06:00
ecs.php PHP SDK 1.0.0-beta.3 2024-12-13 19:05:46 -06:00
phpstan.neon v0.21.0-beta1 2024-12-05 09:09:04 -08:00

README.md

Stable Version Total Downloads

Datastar PHP SDK

This package provides a PHP SDK for working with Datastar.

License

This package is licensed for free under the MIT License.

Requirements

This package requires PHP 8.1 or later.

Installation

Install using composer.

composer require starfederation/datastar-php

Usage

use starfederation\datastar\enums\EventType;
use starfederation\datastar\enums\FragmentMergeMode;
use starfederation\datastar\ServerSentEventGenerator;

// If your framework has its own way of sending response headers, you must manually send the headers returned by `ServerSentEventGenerator::headers()` before creating a new instance of `ServerSentEventGenerator`.

// Creates a new `ServerSentEventGenerator` instance.
$sse = new ServerSentEventGenerator();

// Merges HTML fragments into the DOM.
$sse->mergeFragments('<div></div>', [
    'selector' => '#my-div',
    'mergeMode' => FragmentMergeMode::Append,
    'useViewTransition' => true,
]);

// Removes HTML fragments from the DOM.
$sse->removeFragments('#my-div');

// Merges signals.
$sse->mergeSignals('{foo: 123}', [
    'onlyIfMissing' => true,
]);

// Removes signals.
$sse->removeSignals(['foo', 'bar']);

// Executes JavaScript in the browser.
$sse->executeScript('console.log("Hello, world!")');

// Redirects the browser by setting the location to the provided URI.
$sse->location('/guide');
use starfederation\datastar\ServerSentEventGenerator;

$signals = ServerSentEventGenerator::readSignals();