Download the PHP package swaggest/json-schema without Composer

On this page you can find all versions of the php package swaggest/json-schema. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package json-schema

Swaggest JSON-schema implementation for PHP

Build Status codecov time tracker Code lines Comments

High definition PHP structures with JSON-schema based validation.

Supported schemas:

Installation

Usage

Structure definition can be done either with json-schema or with PHP class extending Swaggest\JsonSchema\Structure\ClassStructure

Validating JSON data against given schema

Define your json-schema

Load it

Validate data

You can also call Schema::import on string uri to schema json data.

Or with boolean argument.

Understanding error cause

With complex schemas it may be hard to find out what's wrong with your data. Exception message can look like:

For ambiguous schemas defined with oneOf/anyOf message is indented multi-line string.

Processing path is a combination of schema and data pointers. You can use InvalidValue->getSchemaPointer() and InvalidValue->getDataPointer() to extract schema/data pointer.

You can receive Schema instance that failed validation with InvalidValue->getFailedSubSchema.

You can build error tree using InvalidValue->inspect().

PHP structured classes with validation

Validation of dynamic properties is performed on set, this can help to find source of invalid data at cost of some performance drop

Validation of native properties is performed only on import/export

Error messages provide a path to invalid data

Nested structures

Nested structures allow you to make composition: flatten several objects in one and separate back.

You can also use \Swaggest\JsonSchema\Structure\Composition to dynamically create schema compositions. This can be helpful to deal with results of database query on joined data.

Keys mapping

If property names of PHP objects should be different from raw data you can call ->addPropertyMapping on owner schema.

It will affect data mapping:

You can have multiple mapping namespaces, controlling with mapping property of Context

You can create your own pre-processor implementing Swaggest\JsonSchema\DataPreProcessor.

Meta

Meta is a way to complement Schema with your own data. You can keep and retrieve it.

You can store it.

And get back.

Mapping without validation

If you want to tolerate invalid data or improve mapping performance you can specify skipValidation flag in processing Context

Overriding mapping classes

If you want to map data to a different class you can register mapping at top level of your importer structure.

Or specify it in processing context

Code quality and test coverage

Some code quality best practices are deliberately violated here ( see Scrutinizer Code Quality ) to allow best performance at maintenance cost.

Those violations are secured by comprehensive test coverage:

Contributing

Issues and pull requests are welcome!

Development supported by JetBrains.


All versions of json-schema with dependencies

PHP Build Version
Package Version
Requires php Version >=5.4
ext-json Version *
phplang/scope-exit Version ^1.0
swaggest/json-diff Version ^3.8.2
symfony/polyfill-mbstring Version ^1.19
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package swaggest/json-schema contains the following files

Loading the files please wait ....