queryr / term-store
Persistence of Wikibase terms with lookups of those terms and by those terms
Requires
- php: >=7.1
- doctrine/dbal: ~2.4
- wikibase/data-model: ~6.0
Requires (Dev)
- ext-pdo_sqlite: *
- ockcyp/covers-validator: ~0.6.1
- phpmd/phpmd: ~2.6
- phpunit/phpunit: ~6.5
- squizlabs/php_codesniffer: ~3.2
README
Stores terms of Wikibase entities to facilitate
- lookup of EntityIds given a term
- lookup of term(s) given an EntityId
- storing a Fingerprint for an EntityId
- removing all terms associated with an EntityId
System dependencies
- PHP 5.5 or later (PHP 7 and HHVM are supported)
- php5-sqlite (only needed for running the tests)
Installation
To add this package as a local, per-project dependency to your project, simply add a
dependency on queryr/term-store
to your project's composer.json
file.
Here is a minimal example of a composer.json
file that just defines a dependency on
TermStore 1.x:
{ "require": { "queryr/term-store": "~1.0" } }
Usage
If you are curious what the database schema is, look at src/TermStoreInstaller.php
.
All services are constructed via the TermStoreFactory
class:
use Queryr\TermStore\TermStoreFactory; $factory = new TermStoreFactory( $dbalConnection, new TermStoreConfig( /* optional config */ ) );
$dbalConnection
is a Connection
object from Doctrine DBAL.
Writing to the store
$writer = $factory->newTermStoreWriter(); $writer->storeEntityFingerprint( $entityId, $fingerprint ); $writer->dropTermsForId( $entityId );
Lookup up an EntityId based on terms
$idLookup = $factory->newEntityIdLookup(); $idLookup->getItemIdByLabel( $languageCode, $labelText ); $idLookup->getItemIdByText( $languageCode, $termText ); $idLookup->getIdByLabel( $languageCode, $labelText );
See the EntityIdLookup
interface for all methods and their documentation.
Lookup label based on EntityId and language
$labelLookup = $factory->newLabelLookup(); $labelLookup->getLabelByIdAndLanguage( $entityId, $languageCode );
See the LabelLookup
interface for documentation.
Running the tests
For tests only
composer test
For style checks only
composer cs
For a full CI run
composer ci
Release notes
Version 1.3.0 (2018-01-04)
- Bumped minimum PHP version to 7.1
- Added scalar and return type hints
Version 1.2.0 (2017-02-28)
- Installation with Wikibase DataModel 6.x is now allowed
- Installation with Wikibase DataModel 5.x is now allowed
Version 1.1.0 (2015-11-10)
- Added
newLabelLookup
toTermStoreFactory
- Improved documentation
Version 1.0.0 (2015-11-03)
- Installation with Wikibase DataModel 4.x is now allowed
- Installation with Wikibase DataModel 3.x is now allowed
- Changed minimum Wikibase DataModel version to 2.5
- Added ci command that runs PHPUnit, PHPCS, PHPMD and covers tags validation
- Added TravisCI and ScrutinizerCI integration
Version 0.2.2 (2014-10-21)
- Installation with Wikibase DataModel 2.x is now allowed
Version 0.2.1 (2014-10-05)
- Improved performance of
TermStore::storeEntityFingerprint
via usage of a transaction
Version 0.2 (2014-09-11)
- Added
TermStoreFactory
. Service construction should now happen via this factory - Added
EntityIdLookup
, which is now implemented byTermStore
- Added
getItemIdByLabel
,getPropertyIdByLabel
,getItemIdByText
andgetPropertyIdByText
toTermStore
Version 0.1 (2014-06-23)
- Initial release