Skip to content

Commit 71c5411

Browse files
committed
Merge remote-tracking branch 'upstream/php-standardization' into DOCSP-41955-connect-to-mongodb
2 parents ca2f634 + f4d7b49 commit 71c5411

File tree

11 files changed

+678
-102
lines changed

11 files changed

+678
-102
lines changed

snooty.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@ toc_landing_pages = [
1717
"/reference/class/MongoDBModelCollectionInfo",
1818
"/reference/class/MongoDBModelDatabaseInfo",
1919
"/reference/class/MongoDBModelIndexInfo",
20+
"/get-started",
2021
]
2122

2223
[substitutions]
2324
php-library = "MongoDB PHP Library"
2425

2526
[constants]
2627
php-library = "MongoDB PHP Library"
28+
mdb-server = "MongoDB Server"
29+
api = "https://www.mongodb.com/docs/php-library/current/reference"

source/get-started.txt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,34 @@ Get Started with the PHP Library
1313
.. facet::
1414
:name: genre
1515
:values: tutorial
16-
16+
1717
.. meta::
1818
:description: Learn how to create an app to connect to MongoDB deployment by using the PHP library.
1919
:keywords: quick start, tutorial, basics
2020

2121
.. toctree::
2222

23+
/get-started/download-and-install/
2324
/get-started/create-a-deployment/
2425
/get-started/create-a-connection-string/
2526
/get-started/connect-to-mongodb/
27+
/get-started/next-steps/
28+
29+
Overview
30+
--------
31+
32+
The {+php-library+} is a high-level abstraction for the MongoDB PHP extension, which
33+
you can use to connect to MongoDB and interact with data stored in your deployment.
34+
This guide shows you how to create an application that uses the {+php-library+} to
35+
connect to a MongoDB cluster hosted on MongoDB Atlas and query data in your cluster.
36+
37+
.. tip::
38+
39+
MongoDB Atlas is a fully managed cloud database service that hosts your MongoDB
40+
deployments. You can create your own free (no credit card required) MongoDB Atlas
41+
deployment by following the steps in this guide.
42+
43+
Follow this guide to connect a sample PHP application to a MongoDB Atlas
44+
deployment. If you prefer to connect to MongoDB using a different driver or
45+
programming language, see our :driver:`list of official drivers <>`.
2646

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
.. _php-download-and-install:
2+
3+
====================
4+
Download and Install
5+
====================
6+
7+
.. facet::
8+
:name: genre
9+
:values: tutorial
10+
11+
.. meta::
12+
:keywords: setup, composer, installation, code example
13+
14+
.. procedure::
15+
:style: connected
16+
17+
.. step:: Install dependencies
18+
19+
Before you begin developing, ensure that you have the following
20+
dependencies installed on your local machine:
21+
22+
- `PHP <https://www.php.net/manual/en/install.php>`__ version 7.4 or later
23+
- `Composer <https://getcomposer.org/download/>`__ version 2.0 or later
24+
25+
.. step:: Install the MongoDB PHP extension
26+
27+
Run the following command to install the ``mongodb`` PHP extension:
28+
29+
.. code-block:: bash
30+
31+
sudo pecl install mongodb
32+
33+
.. step:: Update your PHP configuration file
34+
35+
To enable the ``mongodb`` extension in your PHP configuration file, add the
36+
following line to the top of your ``php.ini`` file:
37+
38+
.. code-block:: none
39+
40+
extension=mongodb.so
41+
42+
.. tip::
43+
44+
You can locate your ``php.ini`` file by running the following command
45+
in your shell:
46+
47+
.. code-block:: bash
48+
49+
php --ini
50+
51+
.. step:: Create a project directory
52+
53+
From your root directory, run the following command in your shell to create
54+
a directory called ``php-quickstart`` for this project:
55+
56+
.. code-block:: bash
57+
58+
mkdir php-quickstart
59+
60+
Select the tab corresponding to your operating system and run the following commands
61+
to create a ``quickstart.php`` application file in the ``php-quickstart`` directory:
62+
63+
.. tabs::
64+
65+
.. tab:: macOS / Linux
66+
:tabid: create-file-mac-linux
67+
68+
.. code-block:: bash
69+
70+
cd php-quickstart
71+
touch quickstart.php
72+
73+
.. tab:: Windows
74+
:tabid: create-file-windows
75+
76+
.. code-block:: bash
77+
78+
cd php-quickstart
79+
type nul > quickstart.php
80+
81+
.. step:: Install the {+php-library+}
82+
83+
To install the {+php-library+}, run the following command in your ``php-quickstart``
84+
directory:
85+
86+
.. code-block:: bash
87+
88+
composer require mongodb/mongodb
89+
90+
After installing the library, include Composer's ``autoload.php`` file by adding the
91+
following code to the top of your ``quickstart.php`` file:
92+
93+
.. code-block:: php
94+
95+
<?php
96+
97+
require_once __DIR__ . '/vendor/autoload.php';
98+
99+
After you complete these steps, you have a new project directory, a
100+
new application file, and the library dependencies installed.
101+
102+
.. include:: /includes/get-started/troubleshoot.rst

source/get-started/next-steps.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.. _php-next-steps:
2+
3+
==========
4+
Next Steps
5+
==========
6+
7+
.. facet::
8+
:name: genre
9+
:values: reference
10+
11+
.. meta::
12+
:keywords: learn more
13+
14+
Congratulations on completing the quick start tutorial!
15+
16+
In this tutorial, you created a PHP application that
17+
connects to a MongoDB deployment hosted on MongoDB Atlas
18+
and retrieves a document that matches a query.
19+
20+
.. TODO:
21+
Learn more about the {+php-library+} from the following resources:
22+
- Learn how to perform read operations in the :ref:`<php-read>` section.
23+
- Learn how to perform write operations in the :ref:`<php-write>` section.

source/includes/read/project.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset');
6+
$client = new MongoDB\Client($uri);
7+
8+
// start-db-coll
9+
$collection = $client->sample_restaurants->restaurants;
10+
// end-db-coll
11+
12+
// Retrieves documents matching the "name" field query and projects their "name", "cuisine", and "borough" values
13+
// start-project-include
14+
$options = [
15+
'projection' => [
16+
'name' => 1,
17+
'cuisine' => 1,
18+
'borough' => 1,
19+
],
20+
];
21+
22+
$cursor = $collection->find(['name' => 'Emerald Pub'], $options);
23+
foreach ($cursor as $doc) {
24+
echo json_encode($doc) . PHP_EOL;
25+
}
26+
// end-project-include
27+
28+
// Retrieves documents matching the "name" field query
29+
// and projects their "name", "cuisine", and "borough" values while excluding the "_id" values
30+
// start-project-include-without-id
31+
$options = [
32+
'projection' => [
33+
'_id' => 0,
34+
'name' => 1,
35+
'cuisine' => 1,
36+
'borough' => 1,
37+
],
38+
];
39+
40+
$cursor = $collection->find(['name' => 'Emerald Pub'], $options);
41+
foreach ($cursor as $doc) {
42+
echo json_encode($doc) . PHP_EOL;
43+
}
44+
// end-project-include-without-id
45+
46+
// Retrieves documents matching the "name" field query and excludes their "grades" and "address" values when printing
47+
// start-project-exclude
48+
$options = [
49+
'projection' => [
50+
'grades' => 0,
51+
'address' => 0,
52+
],
53+
];
54+
55+
$cursor = $collection->find(['name' => 'Emerald Pub'], $options);
56+
foreach ($cursor as $doc) {
57+
echo json_encode($doc) . PHP_EOL;
58+
}
59+
// end-project-exclude

source/includes/read/retrieve.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
require 'vendor/autoload.php';
3+
4+
$uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset');
5+
$client = new MongoDB\Client($uri);
6+
7+
// start-db-coll
8+
$collection = $client->sample_training->companies;
9+
// end-db-coll
10+
11+
// Finds one document with a "name" value of "LinkedIn"
12+
// start-find-one
13+
$document = $collection->findOne(['name' => 'LinkedIn']);
14+
echo json_encode($document) . "\n";
15+
// end-find-one
16+
17+
// Finds documents with a "founded_year" value of 1970
18+
// start-find-many
19+
$results = $collection->find(['founded_year' => 1970]);
20+
// end-find-many
21+
22+
// Prints documents with a "founded_year" value of 1970
23+
// start-cursor
24+
foreach ($results as $doc) {
25+
echo json_encode($doc) . "\n";
26+
}
27+
// end-cursor
28+
29+
// Finds and prints up to 5 documents with a "number_of_employees" value of 1000
30+
// start-modify
31+
$results = $collection->find(
32+
['number_of_employees' => 1000],
33+
['limit' => 5]
34+
);
35+
36+
foreach ($results as $doc) {
37+
echo json_encode($doc) . "\n";
38+
}
39+
// end-modify

source/index.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ MongoDB PHP Library
1010
.. toctree::
1111
:titlesonly:
1212

13-
Installation </tutorial/install-php-library>
1413
Get Started </get-started>
14+
/read
1515
/tutorial
1616
/upgrade
1717
/reference
@@ -38,7 +38,7 @@ New to the PHP Library?
3838
If you have some experience with MongoDB but are new to the PHP library, the
3939
following pages should help you get started:
4040

41-
- :doc:`/tutorial/install-php-library`
41+
- :ref:`php-download-and-install`
4242

4343
- :doc:`/tutorial/connecting`
4444

source/read.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.. _php-read:
2+
3+
======================
4+
Read Data from MongoDB
5+
======================
6+
7+
.. toctree::
8+
:titlesonly:
9+
:maxdepth: 1
10+
11+
/read/retrieve
12+
/read/project
13+

0 commit comments

Comments
 (0)