Get support for dunglas/solid-client-php

If you're new to LTH, please see our FAQ for more information on what it is we do.

Support Options

Unfortunately, there are currently no active helpers for this repository on the platform. Until they become available, we reccomend the following actions:

View Open Issues

Take a look to see if anyone else has experienced the same issue as you and if they managed to solve it.

Open an Issue

Make sure to read any relevant guidelines for opening issues on this repo before posting a new issue.

Sponsor directly

Check out the page and see if there are any options to sponsor this project or it's developers directly.

dunglas/solid-client-php

Solid Client PHP

Re-decentralizing the web

Solid (derived from "social linked data") is a proposed set of conventions and tools for building decentralized Web applications based on Linked Data principles.

This repository contains a PHP library for accessing data and managing permissions on data stored in a Solid Pod It also a contains a Symfony bundle to easily build Solid applications with the Symfony and API Platform frameworks.

Take a look at the presentation of this library at the SymfonyLive Paris 2022 conference.

Install

composer require dunglas/solid-client-php

If you use Symfony or API Platform, the bundle and the corresponding recipe will be installed automatically.

Example

<?php

use Dunglas\PhpSolidClient\SolidClientFactory;
use Dunglas\PhpSolidClient\OidcClient;
use Symfony\Component\HttpClient\HttpClient;

$solidClientFactory = new SolidClientFactory(HttpClient::create());

// Create an anonymous Solid client
$anonymousSolidClient = $solidClientFactory->create();

// Fetch the WebID profile of a user
$profile = $anonymousSolidClient->getProfile('https://example.com/your/webid');
// Fetch the OIDC issuer for a user
$oidcIssuer = $anonymousSolidClient->getOidcIssuer('https://example.com/your/webid');

// Create a Solid OIDC client for this user
$oidcClient = new OidcClient($oidcIssuer);
// Register the OIDC client dynamically
$oidcClient->register();
// Authenticate the user
$oidcClient->authenticate();
// At this point you may want to save $oidcClient in the session
// The user will be redirected to the OIDC server to log in

// Create a Solid client generating DPoP access tokens for the logged-in user
$loggedSolidClient = $solidClientFactory->create($oidcClient);

// Create a new container
$containerResponse = $loggedSolidClient->createContainer('https://mypod.example.com', 'blog');
$container = $containerResponse->getContent();

// Post a new note
$apiPlatformResponse = $loggedSolidClient->post('https://mypod.example.com/blog', 'api-platform-conference', <<<TTL
@prefix as: <http://www.w3.org/ns/activitystreams#>.

<> a as:Note; as:content "Going to API Platform Conference".
TTL
);
$apiPlatformCon = $apiPlatformResponse->getContent();

// Fetch an existing note
$symfonyLiveResponse = $loggedSolidClient->get('https://mypod.example.com/blog/symfony-live');
$symfonyLive = $symfonyLiveResponse->getContent();

// Logout
$oidcClient->signOut($oidcClient->getIdToken());

Features

  • Standalone PHP library
  • Symfony Bundle
    • OAuth/OIDC authenticator
    • Solid client as a service

Authentication

Identity

Reading and Writing Resources

Not Implemented Yet

Our Mission

We want to make open source more sustainable. The entire platform was born from this and everything we do is in aid of this.

Interesting Articles

Thank you for checking out LiveTechHelper |
2025 © lth-dev incorporated

p-e622a1a2