mirror of
https://github.com/php/pecl-database-mysql_xdevapi.git
synced 2026-03-24 07:12:14 +01:00
87 lines
3.5 KiB
Plaintext
87 lines
3.5 KiB
Plaintext
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) 2006-2020 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
|
|
license@php.net so we can mail you a copy immediately.
|