pecl-database-mysql_xdevapi
pecl-database-mysql_xdevapi copied to clipboard
PECL MySQL X DevAPI
MySQL X DevAPI for PHP
This PHP Extension provides MySQL's X DevAPI. The X DevAPI is a new CRUD-style API for accessing MySQL as a Document Store. It is based on the MySQL 8's X protocol and unifies JSON document and table access, and it includes SQL support. The API features a popular fluent interface style and aims to be particularly easy to use yet powerful. The X DevAPI sees wide cross product support. Developers can use the same syntax and rely on the existence of virtually the same feature set in may products they work with on a day to day basis.
The X DevAPI combines elements of the relational database model with elements of storing JSON documents. Working with schemaless data serialized in JSON has become very popular in recent years. Schema flexibility allows data-first development models. For example, application developers do not need to define the very details of the data to be stored before it can be saved, customers can model applications using an iterative approach, defining the details along the way when they work with the developers. In other areas a mode-first development model may fit the brief better. The X DevAPI supports both working with schemaful relational tables and schemaless collections of JSON documents.
The X DevAPI abstracts the notion of a connection to that of a session. A session encapsulates physical connections. This concept is crucial for any environment where the creation, selection and life span of a physical connection shall not be a concern of the application developer.
To learn more about the details of the X DevAPI refer to the documentation on http://dev.mysql.com/doc/x-devapi-userguide/en/
To learn more about MySQL as a Document Store efer to documentation on http://dev.mysql.com/doc/refman/8.0/en/document-store.html
Installation
This extension depends on PHP 7.1 or newer. For general installation instructions for PHP extensions see http://php.net/install.pecl
In addition to PHP's dependencies, Google's Protocol Buffer and boost libraries are required. On any Linux-based systems a package called libprotobuf-dev or similar is required.
Further hints for installing this module: http://php.net/manual/en/mysql-xdevapi.setup.php
Documentation
Documentation is available at: http://php.net/manual/en/book.mysql-xdevapi.php
Supported X DevAPI features
- collections API - add, find, modify, remove
- collection single doc API - getOne, replaceOne, addOrReplaceOne, removeOne
- new document _id generation
- authentication modes: MYSQL41, PLAIN, EXTERNAL, SHA256_MEM
- table API - insert, select, update, delete
- row locking for Collection.Find / Table.Select, also modes NOWAIT and SKIP LOCKED
- collection / table - getName, existsInDatabase, count
- collection index - create, drop
- resultsets / multi-resultsets
- getCollection(s) / getTable(s) / getCollectionAsTable
- drop schema / collection
- connection pooling
- DNS SRV support
- connection compression
- schema validation to create collection
For a simple use cases see examples.php or tests/*.phpt
License
Copyright (c) The PHP Group
This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: http://www.php.net/license/3_01.txt If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to [email protected] so we can mail you a copy immediately.