diff --git a/source/includes/connection-snippets/scram/php-connection-no-stableapi.php b/source/includes/connection-snippets/scram/php-connection-no-stableapi.php deleted file mode 100644 index af349e934..000000000 --- a/source/includes/connection-snippets/scram/php-connection-no-stableapi.php +++ /dev/null @@ -1,18 +0,0 @@ -'; - -// Create a new client and connect to the server -$client = new MongoDB\Client($uri); - -try { - // Send a ping to confirm a successful connection - $client->selectDatabase('admin')->command(['ping' => 1]); - echo "Pinged your deployment. You successfully connected to MongoDB!\n"; -} catch (Exception $e) { - printf($e->getMessage()); -} \ No newline at end of file diff --git a/source/includes/connection-snippets/scram/php-connection.php b/source/includes/connection-snippets/scram/php-connection.php deleted file mode 100644 index 75c84abdc..000000000 --- a/source/includes/connection-snippets/scram/php-connection.php +++ /dev/null @@ -1,22 +0,0 @@ -'; - -// Specify Stable API version 1 -$apiVersion = new ServerApi(ServerApi::V1); - -// Create a new client and connect to the server -$client = new MongoDB\Client($uri, [], ['serverApi' => $apiVersion]); - -try { - // Send a ping to confirm a successful connection - $client->selectDatabase('admin')->command(['ping' => 1]); - echo "Pinged your deployment. You successfully connected to MongoDB!\n"; -} catch (Exception $e) { - printf($e->getMessage()); -} \ No newline at end of file diff --git a/source/php-drivers.txt b/source/php-drivers.txt index d625a119b..0351997e1 100644 --- a/source/php-drivers.txt +++ b/source/php-drivers.txt @@ -20,8 +20,9 @@ MongoDB PHP Driver :titlesonly: Laravel MongoDB - /php-frameworks/symfony - /php-libraries + Symfony Integration + Drupal Integration + Libraries, Frameworks, & Tools .. contents:: On this page :local: @@ -36,44 +37,31 @@ Welcome to the documentation site for the official MongoDB PHP driver. You can add the driver to your application to work with MongoDB in PHP. The MongoDB PHP Driver consists of the following components: -- The `extension `__, which - provides a low-level API and mainly serves to integrate - `libmongoc and libbson `__ with - PHP. +- `Extension `__: + Provides a low-level API and mainly serves to integrate + the `libmongoc `__ and + `libbson `__ libraries with PHP. -- The `library `__, which - provides a high-level API for working with MongoDB +- `Library `__: + Provides a high-level API for working with MongoDB databases consistent with other MongoDB language drivers. -While it is possible to use the extension alone, MongoDB recommends -using both the extension and the library together. To learn more about -the components of the PHP driver, see the :ref:`Driver Architecture -` section of this page. +While it is possible to use only the extension, we recommend +using the extension and the library together. To learn more about +the components of the PHP driver, see the :ref:`php-driver-arch` section +of this page. -Navigate through the following links to learn more about the driver and access +View the following guides to learn more about the driver and access tutorial content on setting up a runnable project: -- `Tutorials `__ +- `Get Started with the PHP Library `__ +- `Connect to MongoDB `__ -- `Extension Architecture and Internals `__ +Reference +~~~~~~~~~ -- Documentation - - - `Library `__ - - - `Extension `__ - -- Changelog - - - `Library `__ - - - `Extension `__ - -- Source Code - - - `Library `__ - - - `Extension `__ +- :github:`Release Notes ` +- :github:`Driver Source Code ` .. _php-driver-arch: @@ -124,21 +112,21 @@ following environments: Installation ------------ -First, make sure you have a recent version of PHP installed on your -system. See the -`official PHP manual `__ +Make sure you have a recent version of PHP installed on your +system. See the `PHP manual `__ for download and installation instructions. -Install the PHP MongoDB Extension before installing the PHP Library for -MongoDB. You can install the extension using -`PECL `__ on -the command line: +Install the PHP MongoDB Extension before you install the MongoDB PHP +Library. You can install the extension by using `PECL +`__ on the +command line: .. code-block:: sh - $ sudo pecl install mongodb + sudo pecl install mongodb -Finally, add the following line to your ``php.ini`` file: +After installation completes, add the following line to your ``php.ini`` +file: .. code-block:: text @@ -146,18 +134,20 @@ Finally, add the following line to your ``php.ini`` file: .. note:: - On some systems, there may be multiple INI files for individual SAPIs (e.g. - CLI, FPM). Make sure to enable the extension in all SAPIs that you need. + On some systems, there might be multiple ``.ini`` files for + individual SAPIs, such as CLI, FPM. Make sure to enable the extension + in all SAPIs that you use. -The preferred method of installing the PHP library is with -`Composer `__ by running the following from your project root: +Then, install the PHP library by using `Composer +`__. Run the following command from your +project directory: .. code-block:: sh - $ composer require mongodb/mongodb + composer require mongodb/mongodb -Once you have installed the library, ensure that your application includes -Composer's autoloader as in the following example: +After installation completes, ensure that your application includes +Composer's autoloader as shown in the following example: .. code-block:: php @@ -165,51 +155,10 @@ Composer's autoloader as in the following example: require_once __DIR__ . '/vendor/autoload.php'; -Additional installation instructions may be found in the -`library documentation `__. - -.. _connect-atlas-php-driver: - -Connect to MongoDB Atlas ------------------------- - -You can use the following connection snippet to test your connection to -your MongoDB deployment on Atlas: - -.. literalinclude:: /includes/connection-snippets/scram/php-connection.php - :language: php - -This connection snippet uses the {+stable-api+} feature, which you can -enable when using the PHP driver v1.9 and later to connect to MongoDB Server -v5.0 and later. When you use this feature, you can update your driver or server without -worrying about backward compatibility issues with any commands covered by the -{+stable-api+}. - -To learn more about the {+stable-api+} feature, see -:manual:`{+stable-api+} ` in the Server manual. - -.. include:: /includes/stable-api-notice.rst - -.. _connect-atlas-no-stable-api-php-driver: - -Connect to MongoDB Atlas Without the Stable API ------------------------------------------------ - -If you are using a version of MongoDB or the driver that doesn't support the -{+stable-api+} feature, you can use the following code snippet to test your connection -to your MongoDB deployment on Atlas: - -.. literalinclude:: /includes/connection-snippets/scram/php-connection-no-stableapi.php - :language: php - -Connect to a MongoDB Server on Your Local Machine -------------------------------------------------- - -.. include:: /includes/localhost-connection.rst - -To test whether you can connect to your server, replace the connection -string in the :ref:`Connect to MongoDB Atlas ` code -example and run it. +The `PHP Library documentation +`__ contains reference +materials and tutorials that demonstrate how to interact with your +MongoDB data. Compatibility ------------- @@ -245,9 +194,3 @@ The first column lists the driver versions. .. include:: /includes/about-driver-compatibility.rst .. include:: /includes/help-links-php.rst - -See Also --------- - -- :ref:`php-libraries-frameworks-and-tools` - diff --git a/source/php-frameworks/drupal.txt b/source/php-frameworks/drupal.txt new file mode 100644 index 000000000..f2027fe00 --- /dev/null +++ b/source/php-frameworks/drupal.txt @@ -0,0 +1,109 @@ +.. _php-drupal-integration: + +========================== +Drupal MongoDB Integration +========================== + +.. facet:: + :name: genre + :values: tutorial + +.. meta:: + :keywords: php framework, CMS, web app, authentication, Atlas + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +Overview +-------- + +In this guide, you can learn about the benefits of using MongoDB Atlas +as the database for Drupal sites. + +`Drupal `__ is an open-source web content +management system (CMS) written in PHP. Drupal provides simple content +authoring, composability, and robust authentication features. + +The :ref:`php-drupal-tutorial` section of this guide links to a tutorial +that you can follow to set up a Drupal site that connects to MongoDB Atlas. + +The :ref:`php-drupal-resources` section contains links to resources and +documentation for further learning. + +Why Use MongoDB as the Database for Drupal Sites? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Websites that seek to provide personalized user experiences must contain +robust capabilities for user authentication. Sites that have many +authenticated users might face performance impacts due to the complexity +of retrieving entity data from multiple tables in a relational database. +MongoDB eliminates the need for complicated table joins and +thus increases data retrieval speed, enhancing user experience of +components such as personalized dashboards and dynamic content feeds. + +When you use MongoDB Atlas as your site's database, Drupal stores entity +instances as JSON objects that contain all revisions, translations, and +field data. This flexible data structure decreases latency and allows +Drupal to support personalized, user-focused experiences. + +MongoDB offers the following features that improve your Drupal sites: + +- Horizontal scaling: Distribute loads across multiple + servers, making your database scalable for large user bases. + +- Integrated file storage: Store user files directly in the + database instead of on the web server, simplifying hosting. + +- Full-text search: Avoid implementing separate search + solutions by leveraging the :atlas:`Atlas Search + ` feature. + +- AI capabilities: Perform vector searches and integrate AI services by + using the :atlas:`Atlas Vector Search + ` feature. + +.. _php-drupal-tutorial: + +Tutorial +-------- + +To learn how to install the MongoDB driver for Drupal and set up a site +that uses MongoDB Atlas as its database, see the +`How to Run Drupal on MongoDB `__ +tutorial on the DEV Community website. + +This tutorial demonstrates how to perform the following steps: + +1. Setting up a MongoDB Atlas account and deployment. + +#. Setting up an AWS EC2 medium instance. + +#. Connecting the EC2 instance to Atlas. + +#. Installing the following components: + + - Apache web server + - `MongoDB PHP extension `__ + - Drupal web server + - Drupal core patch + +#. Connecting your Drupal site to Atlas. + +#. Adding content to Drupal and viewing how it is stored in Atlas. + +#. Safely shutting down your web server. + +.. _php-drupal-resources: + +Resources +--------- + +Learn more about Drupal and MongoDB by viewing the following resources: + +- `MongoDB module suite for Drupal `__ +- `Drupal CMS User Guide `__ +- :website:`Podcast: PHP, Drupal and MongoDB with David Bekker + ` diff --git a/source/php-frameworks/symfony.txt b/source/php-frameworks/symfony.txt index 43f9c096a..9b1e6ea29 100644 --- a/source/php-frameworks/symfony.txt +++ b/source/php-frameworks/symfony.txt @@ -26,9 +26,9 @@ read about the benefits of using Symfony to build web applications with MongoDB as your database and practice using libraries that simplify querying MongoDB. -Symfony is a flexible and highly configurable framework for building PHP -applications. You can use this framework to create reusable components -to streamline your web app. +`Symfony `__ is a flexible and highly configurable +framework for building PHP applications. You can use this framework to +create reusable components to streamline your web app. The :ref:`php-symfony-qs` section of this guide contains a tutorial which you can follow to build a single page app that accesses data from @@ -124,9 +124,9 @@ Atlas documentation. Install MongoDB Extension ~~~~~~~~~~~~~~~~~~~~~~~~~ -To learn more about installing the MongoDB extension, see `Installing the Extension -`__ -in the PHP Library Manual. +To learn more about installing the MongoDB extension, see the `Get +Started with the PHP Library +`__ tutorial. Initialize a Symfony Project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/php-libraries.txt b/source/php-libraries.txt index 587c79776..5f35f47f3 100644 --- a/source/php-libraries.txt +++ b/source/php-libraries.txt @@ -58,6 +58,10 @@ Framework Integrations types of Drupal data in MongoDB. The ``mongodb`` extension supports Drupal 8 and later. + - :ref:`php-drupal-integration` describes the benefits of using MongoDB + as a data store in a Drupal site and provides useful links to learn + about using this integration. + - Laravel - `Laravel MongoDB `__