Install and Start Using the PHP SDK with Couchbase Server
The Couchbase PHP SDK allows you to connect to a Couchbase cluster from PHP. The Couchbase PHP SDK is a native PHP extension and uses the Couchbase high-performance C library to handle communicating to the cluster over Couchbase binary protocols.
These pages cover the Beta release of the Couchbase PHP SDK. The API interface is stable, but could change for bug fixes during the Beta process. New features are likely to be added.
Documentation is incomplete, subject to change, and could contain broken links.
The Couchbase PHP SDK 3.0 is a complete rewrite of the API, reducing the number of overloads to present a simplified surface area, and adding support for future Couchbase Server features like Collections and Scopes (available in Couchbase Server 6.5 as a developer preview).
The Couchbase PHP SDK is compatible with PHP 7.
Before installing the PHP SDK, you must install the C SDK — libcouchbase (LCB); version 3.0.0.alpha.4 or higher is required from PHP Client 3.0.0beta1.
After installing the C SDK, install the PHP SDK through your PHP distribution’s pecl command:
$ pecl install couchbase-3.0.0beta1
Further details can be found on the Release Notes & Archives page.
Couchbase uses Role Based Access Control (RBAC) to control access to resources. Here we will use the Full Admin role created during installation of the Couchbase Data Platform. For production client code, you will want to use more appropriate, restrictive settings, but here we want to get you up and running quickly. If you’re developing client code on the same VM or machine as the Couchbase Server, your URI can be localhost.
$connectionString = "couchbase://localhost"; $options = new \Couchbase\ClusterOptions(); $options->credentials("Administrator", "password"); $cluster = new \Couchbase\Cluster($connectionString, $options);
Connection to the cluster is initialized by
// get a bucket reference $bucket = $cluster->bucket("bucket-name");
If you installed the travel sample data bucket, substitute travel-sample for bucket-name.
// get a collection reference $collection = $bucket->defaultCollection(); // or for named collection $collection = $bucket->scope("myapp")->collection("my-collection");
The 3.0 SDK is ready for the introduction of Collections in Cheshire Cat, the next release of the Couchbase Data Platform.
The latest release, Mad Hatter, brings a limited Developer Preview of Collections, allowing Documents to be grouped by purpose or theme, according to specified Scope.
Here we will use the
DefaultCollection, which covers the whole Bucket.
// upsert document $upsertResult = $collection->upsert("my-document", ["name" => "mike"]); // get document $getResult = $collection->get("my-document");