Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7783

Thin Client lib: PHP

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.7
    • thin client
    • None

    Description

      Implement Thin (lightweight) Client lib in PHP programming language for Ignite Binary Client Protocol.

      Functionality:
      --------------

      Support all operations of the Ignite Binary Client Protocol 2.6:
      https://apacheignite.readme.io/v2.6/docs/binary-client-protocol

      Except the following features which are not applicable to PHP client:

      • Filter object for OP_QUERY_SCAN operation (OP_QUERY_SCAN operation itself will be supported).
      • OP_REGISTER_BINARY_TYPE_NAME and OP_GET_BINARY_TYPE_NAME operations.
      • Registration of a new Ignite Enum type (reading and writing items of the existing Ignite Enum types will be supported).

      Additionally support:

      Ignite Binary Client Protocol handshake versions: 1.2.0 only.

      Minimal required PHP version: 7.2
      http://php.net/supported-versions.php

      PHP code-style standards: https://www.php-fig.org/psr/

      Synchronous API will be supported (asynchronous operations are not supported by the standard PHP).
      The API will not be thread-safe (threads are not available in the standard PHP; pthreads extension is not available for the latest PHP version; thread-safety is possible to support by an application).

      Examples:
      ---------

      The set of examples will cover:

      • cache get/create/destroy operations
      • cache put/get operations
      • SQL operations (create table/index, insert/select/drop)
      • SQL Fields query and Scan query
      • Authentication and TLS connection
      • working with primitive and complex data types

      Tests:
      ------

      PHPUnit tests https://phpunit.de for all API methods and all basic features. Including simple tests to start examples.
      Tests will be integrated into the TeamCity with the help from the community.

      Docs:
      ------

      The provided docs will include:

      • Auto-generated API spec using Doxygen: http://www.doxygen.org
      • Instruction how to generate the API spec.
      • Instruction how to release PHP library on Packagist: https://packagist.org/
      • Readme for user with info how to install and use the client.
      • Simple instruction how to setup/run examples.
      • Simple instruction how to setup/run tests.

      All docs will be provided separately from the source code and will not be merged to the target repository. Before the release all instructions and readme will be moved to the readme.io with the help from the community.

      Release:
      --------

      Location of the client:
      <Apache_Ignite>/modules/platforms/php

      Will be released as PHP library on Packagist: https://packagist.org/ by the community.

       

      Attachments

        Issue Links

          Activity

            People

              ekaterina.vergizova ekaterina.vergizova
              alexey.kosenchuk Alexey Kosenchuk
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: