2017 © Pedro PelĆ”ez
 

library rel-me

Functions for discovering, consuming and verifying rel-me microformat

image

indieweb/rel-me

Functions for discovering, consuming and verifying rel-me microformat

  • Thursday, September 8, 2016
  • by barnabywalters
  • Repository
  • 13 Watchers
  • 9 Stars
  • 77 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 7 % Grown

The README.md

rel-me

A set of PHP functions for discovering, consuming and verifying the rel-me microformat. This is mainly useful for implementing RelMeAuth., (*1)

Build Status, (*2)

Usage

Install using Composer with ./composer.phar require indieweb/rel-me:dev-master, (*3)

Resolve and test a profile URL

<?php

// Register the composer autoloader (assumed in future code samples.)
require 'vendor/autoload.php';

// This is a profile URL a user has given you, or you have parsed from a page somewhere.
$givenProfileUrl = 'http://waterpigs.co.uk';

list($resolvedProfileUrl, $isSecure, $redirectChain) = IndieWeb\relMeDocumentUrl($givenProfileUrl);

if ($isSecure) {
    // $resolvedProfileUrl is the final resolved profile URL derived from the given one.
} else {
    echo 'Your profile URL redirected insecurely (changed protocols)';
    // Here you might use the $redirectChain (list of URLs) to present a more useful error message.
}
// This should be derived and checked using relMeDocumentUrl().
$resolvedProfileUrl = 'http://waterpigs.co.uk';

$relMeLinks = IndieWeb\relMeLinks($resolvedProfileUrl);
// A rel=me link from a silo profile page.
$inboundRelMeUrl = 'http://t.co/qhZqdUcTbQ';
// The derived profile document URL to test for matches of.
$meUrl = 'http://waterpigs.co.uk';

list($matches, $secure, $redirectChain) = IndieWeb\backlinkingRelMeUrlMatches($inboundRelMeUrl, $meUrl);

if ($matches) {
    if ($secure) {
        echo "{$inboundRelMeUrl} is a secure, valid link to {$meUrl}";
    } else {
        echo "{$inboundRelMeUrl} isn’t a secure link to {$meUrl} because it redirects insecurely (changes protocols)";
        // Here you might use the $redirectChain (list of URLs) to present a more useful error message.
    }
} else {
    echo "None of that silo backlink’s redirect chain match {$meUrl}";
}

Utility Functions

  • string $url = IndieWeb\unparseUrl(array $parsedUrl) takes the output of core parse_url() and makes it into a URL again
  • string $url = IndieWeb\normaliseUrl($url) normalises a URL by parsing, then unparsing it
  • list(string $body, array $headers, array $info) = IndieWeb\httpGet($url) performs a basic HTTP GET on a URL
  • string $nextUrl | null = IndieWeb\followOneRedirect($url) fetches a URL and returns the redirect URL if it’s a redirect, else null
  • bool $match = IndieWeb\urlsMatchOtherThanScheme($url1, $url2) compares two URLs and returns whether or not they are the same, ignoring differences in their scheme

Testing

Run the test suite with ./vendor/bin/phpunit, (*4)

There’s also an experimental HTML+microformats test suite which can be run with ./tests/html-test-runner.php, (*5)

Version History

0.1.1 2022-10-08

  • Update dependencies, including php-mf2 v0.5.0
  • Update CI to Github Actions

0.1.0 2014-01-04

  • Initial extraction from indiewebify.me, conversion into a composer package

The Versions

08/09 2016

dev-master

9999999-dev

Functions for discovering, consuming and verifying rel-me microformat

  Sources   Download

MIT

The Requires

 

The Development Requires

04/01 2014

v0.1.0

0.1.0.0

Functions for discovering, consuming and verifying rel-me microformat

  Sources   Download

MIT

The Requires

 

The Development Requires