datastar/sdk/php
Ben Croker ed980b3d4c
Update SDKs to ignore `retry` if set to default (#573)
* Update SDKs to ignore `retry` if set to default

* Remove from test output

* Build
2025-02-02 11:31:39 -06:00
..
.github v0.21.0-beta1 2024-12-05 09:09:04 -08:00
src Update SDKs to ignore `retry` if set to default (#573) 2025-02-02 11:31:39 -06:00
tests PHP SDK 1.0.0-beta.3 2024-12-13 19:05:46 -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 Update PHP SDK 2025-02-01 19:49:59 -06:00
composer.json Update PHP SDK 2025-02-01 19:49:59 -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,
    'settleDuration' => 1000,
    '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();