Skip to content
[READ-ONLY] This component has been converted to a MediaWiki extension and is hosted on Gerrit now.
PHP JavaScript
Branch: master
Clone or download
Tpt Merge pull request #74 from wmde/classFeature
Make use of the …::class feature
Latest commit ef14bee Sep 29, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.


PHP library defining the DataTypes\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".

Build Status Code Coverage Scrutinizer Quality Score Dependency Status

On Packagist: Latest Stable Version Download count


You can use Composer to download and install this package as well as its dependencies. Alternatively you can simply clone the git repository and take care of loading yourself.


To add this package as a local, per-project dependency to your project, simply add a dependency on data-values/data-types to your project's composer.json file. Here is a minimal example of a composer.json file that just defines a dependency on DataTypes 1.0:

    "require": {
        "data-values/data-types": "~1.0"


Get the DataTypes code, either via git, or some other means. Also get all dependencies. You can find a list of the dependencies in the "require" section of the composer.json file. Load all dependencies and the load the DataTypes library by including its entry point: DataTypes.php.


This library comes with a set up PHPUnit tests that cover all non-trivial code. You can run these tests using the PHPUnit configuration file found in the root directory. The tests can also be run via TravisCI, as a TravisCI configuration file is also provided in the root directory.


DataTypes has been written by the Wikidata team at Wikimedia Germany for the Wikidata project.

Release notes

1.1.0 (dev)

  • Updated internationalizations.

1.0.0 (2016-12-29)

  • DataType and DataTypeFactory do not accept empty strings any more.
  • Removed DataType::getLabel along with the DataTypes\Message class.
  • Added DataType::getMessageKey.
  • Added a basic PHPCS rule set, can be run with composer phpcs.

0.5.2 (2016-02-17)

  • Fixed cache invalidation in DataTypesModule.
  • Fixed DataTypeFactory to report invalid arguments on construction.

0.5.1 (2015-10-20)

  • DataTypeFactory::getTypes() now returns array with typeId keys as documented

0.5.0 (2015-08-10)

Breaking changes

  • DataType no longer takes an array of ValueValidator in its constructor
  • DataType::getValidators has been removed
  • DataTypeFactory now takes a map from data type id to data value type.
  • DataTypeFactory::registerBuilder has been removed

0.4.3 (2015-06-18)

  • Fixed version number constant.

0.4.2 (2015-06-18)

  • Updated code documentation for being able to automatically generate a proper documentation using JSDuck.
  • Removed the ResourceLoader module "dependencies" which had been defined by accident.

0.4.1 (2014-11-18)

  • Improved path detection so it does not break when the library is included in vendor rather than extensions

0.4.0 (2014-05-21)

  • Removed the global variable wgDataTypes

0.3.0 (2014-05-21)

  • Rename monolingual-text to monolingualtext
  • Rename multilingual-text to multilingualtext

0.2.1 (2014-05-06)

  • Migrated the i18n support to the new MediaWiki JSON format
  • The tests are now run on PHP 5.6 and HHVM on travis

0.2.0 (2014-03-14)

Breaking changes

  • dataTypes.DataType JavaScript object may no longer be initialized from a dataValues.DataValue object.
  • Removed dataTypes.DataType.getLabel.
  • Removed global DataType registration in the dataTypes object; DataTypeStore is to be used instead.
  • Split up generic "dataTypes" ResourceLoader module into "dataTypes.DataType" and "dataTypes.DataTypeStore".


  • Removed MediaWiki and DataValues dependencies from JavaScript code.
  • Made code PSR-4 compliant
  • Removed ResourceLoader dependency of QUnit tests.
  • Implemented DataTypeStore.

0.1.1 (2013-12-23)

  • Remove assumption about where the extension is installed in the resource loading paths.

0.1.0 (2013-12-15)

Initial release.


You can’t perform that action at this time.