Couchbase with PHP Building Your First Dynamic Web Application

Couchbase is a NoSQL database that combines the capabilities of a document database and key-value store. Its flexibility and performance make it a great choice for building modern web applications. In this tutorial, we'll walk you through how to set up Couchbase, connect it to a PHP application, and build a simple dynamic web application.

Prerequisites

Before we begin, ensure you have the following installed:

  1. Couchbase Server: Download Couchbase Server.
  2. PHP: Version 7.4 or higher is recommended.
  3. Composer: Dependency manager for PHP.
  4. Couchbase PHP SDK: Installable via Composer.
  5. A web server like Apache or Nginx (with PHP integration).


Step 1: Setting Up Couchbase Server


Download and Install Couchbase

Go to Couchbase Downloads and download the version suitable for your system.

Follow the installation instructions for your platform.


Create a Bucket

Access the Couchbase Web Console at http://localhost:8091.


Log in with the default credentials (admin/password or as configured during installation).

Navigate to the "Buckets" tab and create a new bucket named example_bucket.


Insert Sample Data

Use the "Documents" tab in the console to add some sample JSON data to the example_bucket bucket. Example:


{

    "type": "user",

    "id": "1",

    "name": "Alice",

    "email": "alice@example.com"

}


Step 2: Installing the Couchbase PHP SDK


Open your terminal and navigate to your project directory.

Run the following command to install the Couchbase PHP SDK:

composer require couchbase/couchbase


Step 3: Connecting to Couchbase from PHP

Create a file named db.php to manage the database connection

<?php

require 'vendor/autoload.php';

use Couchbase\Cluster;

$connectionString = "couchbase://127.0.0.1";

$username = "Administrator";

$password = "password";

$bucketName = "example_bucket";


$cluster = new Cluster($connectionString);

$cluster->authenticateAs($username, $password);

$bucket = $cluster->bucket($bucketName);

$collection = $bucket->defaultCollection();

?>


Step 4: Building a Simple Web Application


Create a File Structure

/your-project

|-- index.php

|-- db.php

|-- vendor/ (created by Composer)


Fetch and Display Data

Edit the index.php file to fetch and display data from Couchbase:


<?php

require 'db.php';


try {

    $query = 'SELECT `name`, `email` FROM `example_bucket` WHERE `type` = "user"';

    $result = $cluster->query($query);


    echo "<h1>User List</h1><ul>";

    foreach ($result->rows() as $row) {

        echo "<li>{$row['name']} ({$row['email']})</li>";

    }

    echo "</ul>";

} catch (Exception $e) {

    echo "Error: " . $e->getMessage();

}

?>


Start Your Web Server

Use PHP's built-in server to run the application:

php -S localhost:8000


Visit http://localhost:8000 in your browser. You should see the list of users fetched from Couchbase.


Step 5: Adding Data to Couchbase


Update the index.php file to include a form for adding new users:

<h1>Add New User</h1>

<form method="POST" action="">

    <input type="text" name="name" placeholder="Name" required />

    <input type="email" name="email" placeholder="Email" required />

    <button type="submit">Add User</button>

</form>


Handle form submissions:


if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $name = $_POST['name'];

    $email = $_POST['email'];

    $id = uniqid();


    $document = [

        'type' => 'user',

        'id' => $id,

        'name' => $name,

        'email' => $email,

    ];


    $collection->upsert($id, $document);

    echo "<p>User added successfully!</p>";

}


Congratulations! You've successfully set up Couchbase with PHP and built a simple web application to manage and display user data. This foundation can be expanded further to include features like user authentication, search, and advanced queries.

For more advanced use cases and documentation, visit the Couchbase PHP SDK Documentation.  Hope this is helpful, and I apologize if there are any inaccuracies in the information provided.

Comments

Popular posts from this blog

Integrating PHP with Message Queues RabbitMQ Kafka

FastAPI and UVLoop: The Perfect Pair for Asynchronous API Development

Konfigurasi dan Instalasi PostgreSQL Secara Lengkap di Windows Linux dan MacOS