ask / serialization
Library containing serializers and deserializers for the PHP implementation of the Ask query language
Installs: 2 631
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 28
Forks: 1
Open Issues: 0
Requires
- php: >=5.3.0
- ask/ask: ~1.0
- data-values/data-values: ~1.0|~0.1
- serialization/serialization: ~3.1
Requires (Dev)
This package is not auto-updated.
Last update: 2020-08-31 06:02:41 UTC
README
This library is no longer under development and is no longer maintained.
Ask Serialization
Library containing serializers and deserializers for the PHP implementation of the Ask query language.
Installation
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 ask/serialization
to your project's composer.json
file.
Here is a minimal example of a composer.json
file that just defines a dependency on
Ask 1.0:
{
"require": {
"ask/serialization": "1.0.*"
}
}
Library structure
The Ask language objects can all be serialized to a generic format from which the objects can later
be reconstructed. This is done via a set of Serializers/Serializer
implementing objects. These
objects turn for instance a Query object into a data structure containing only primitive types and
arrays. This data structure can thus be readily fed to json_encode, serialize, or the like. The
process of reconstructing the objects from such a serialization is provided by objects implementing
the Deserializers/Deserializer
interface.
Serializers can be obtained via an instance of SerializerFactory
and deserializers can be obtained
via an instance of DeserializerFactory
. You are not allowed to construct these serializers and
deserializers directly yourself or to have any kind of knowledge of them (ie type hinting). These
objects are internal to the Ask library and might change name or structure at any time. All you
are allowed to know when calling $serializerFactory->newQuerySerializer()
is that you get back
an instance of Serializers\Serializer
.
Tests
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.
Authors
Ask has been written by Jeroen De Dauw as Wikimedia Germany employee for the Wikidata project.
Release notes
1.0.3 (2014-11-25)
Installation together with DataValues 1.x is now supported.
1.0.2 (2014-07-24)
- When loaded with MediaWiki, this library now shows up under "other" on Special:Version
- Switched class loading from PSR-0 to PSR-4
1.0.1 (2014-04-02)
- Switched to using version 3.x of Serialization and version 1.x of DataValues Serialization.
1.0 (2013-12-05)
Initial release with these features:
- Serializers for all implemented Ask language objects
- Deserializers for all implemented Ask language objects