liblod-php
A Linked Open Data client library for PHP, developed as part of the
RES project., (*1)
It also works for Linked Data (without the "Open"), but was initially
developed for LOD, and the name stuck., (*2)
Note that this is experimental code which is still under development., (*3)
Requirements
PHP 5.6 or higher (it works under PHP 7, but no features from PHP 7 are used)., (*4)
Installation
To install this library for use with your own code, do:, (*5)
composer require bbcarchdev/liblod
Usage
See liblod-php_usage.md
(in this directory)., (*6)
Developing the code
To develop liblod-php, clone the repo:, (*7)
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:, (*8)
php tools/composer.phar install
Running the tests
To run the unit tests:, (*9)
./vendor/bin/robo unit
To run the integration tests:, (*10)
./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., (*11)
Code coverage
To generate a code coverage report for the tests, you will first need to install the XDebug PHP module. Then, run:, (*12)
./vendor/bin/robo cov
The report can be viewed by opening build/cov/index.html
in a web browser., (*13)
Code quality
Code quality checks can be run with:, (*14)
./vendor/bin/robo mess
This uses PHPMD to report on various issues with the code., (*15)
API docs
Rudimentary (incomplete) API docs can be generated with:, (*16)
./vendor/bin/robo docs
The generated docs end up in the build/apidocs/
directory., (*17)
Code style checking
The code style can be checked with:, (*18)
./vendor/bin/robo style
The code style report ends up in the build/style/
directory., (*19)
(Note that the code style configuration is in the phpcheckstyle-config.xml
file.), (*20)
Authors
API design by Mo McRoberts., (*21)
Implementation by Elliot Smith., (*22)
Contributing
Contributions are welcome via github pull requests., (*23)
Please use the github issue tracker to raise issues., (*24)
Licence
Elliot Smith, © BBC 2017, (*25)
liblod-php is licensed under the terms of the Apache License, Version 2.0
(see LICENCE-APACHE.txt)., (*26)
The liblod-php code base distributes the following software (used during development):, (*27)
(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.), (*28)
liblod-php depends on these libraries at runtime (which are licensed as stated); these are not distributed with liblod-php:, (*29)
liblod-php depends on these libraries for development (which are licensed as stated); these are not distributed with liblod-php:, (*30)