A Linked Open Data client library for PHP, developed as part of the RES project.
It also works for Linked Data (without the "Open"), but was initially developed for LOD, and the name stuck.
Note that this is experimental code which is still under development.
PHP 5.6 or higher (it works under PHP 7, but no features from PHP 7 are used).
To install this library for use with your own code, do:
composer require bbcarchdev/liblod
See liblod-php_usage.md
(in this directory).
To develop liblod-php, clone the repo:
git clone https://github.com/bbcarchdev/liblod-php.git liblod-php
cd liblod-php
Then you'll need to install the dependencies. You can do this with:
php tools/composer.phar install
To run the unit tests:
./vendor/bin/robo unit
To run the integration tests:
./vendor/bin/robo int
Note that the integration tests work against the live Acropolis stack and other LOD sites, so you will need a network connection to run them. They can also be somewhat fragile, as the number of statements for fetched resources may periodically change, depending on what has been ingested. This can occasionally cause test failures.
To generate a code coverage report for the tests, you will first need to install the XDebug PHP module. Then, run:
./vendor/bin/robo cov
The report can be viewed by opening build/cov/index.html
in a web browser.
Code quality checks can be run with:
./vendor/bin/robo mess
This uses PHPMD to report on various issues with the code.
Rudimentary (incomplete) API docs can be generated with:
./vendor/bin/robo docs
The generated docs end up in the build/apidocs/
directory.
The code style can be checked with:
./vendor/bin/robo style
The code style report ends up in the build/style/
directory.
(Note that the code style configuration is in the phpcheckstyle-config.xml
file.)
API design by Mo McRoberts.
Implementation by Elliot Smith.
Contributions are welcome via github pull requests.
Please use the github issue tracker to raise issues.
Elliot Smith, © BBC 2017
liblod-php is licensed under the terms of the Apache License, Version 2.0 (see LICENCE-APACHE.txt).
The liblod-php code base distributes the following software (used during development):
- Composer: distributed under the MIT licence. See
tools/LICENCE-COMPOSER-MIT.txt
for the full licence. - PHPUnit: distributed under the 3-clause BSD licence. See
tools/LICENCE-PHPUNIT-BSD3.txt
for the full licence. - phpDocumentor: distributed under the MIT licence. See
tools/LICENCE-PHPDOCUMENTOR-MIT.txt
for the full licence.
(NB these libraries are distributed with the source because they cause version clashes with dependencies used by the runtime library or are inconvenient to install.)
liblod-php depends on these libraries at runtime (which are licensed as stated); these are not distributed with liblod-php:
- pietercolpaert/hardf - MIT licence
- easyrdf/easyrdf - BSD 3-clause licence
- guzzlehttp/psr7 - MIT licence
- guzzlehttp/guzzle - MIT licence
liblod-php depends on these libraries for development (which are licensed as stated); these are not distributed with liblod-php: