@@ -18,14 +18,6 @@ Get Started with the PHP Library
18
18
:description: Learn how to create an app to connect to MongoDB deployment by using the PHP library.
19
19
:keywords: quick start, tutorial, basics
20
20
21
- .. toctree::
22
-
23
- Download & Install </get-started/download-and-install/>
24
- Create a Deployment </get-started/create-a-deployment/>
25
- Create a Connection String </get-started/create-a-connection-string/>
26
- Run a Sample Query </get-started/run-sample-query/>
27
- Next Steps </get-started/next-steps/>
28
-
29
21
Overview
30
22
--------
31
23
@@ -44,3 +36,313 @@ Follow this guide to connect a sample PHP application to a MongoDB Atlas
44
36
deployment. If you prefer to connect to MongoDB using a different driver or
45
37
programming language, see our :driver:`list of official drivers <>`.
46
38
39
+ .. _php-download-and-install:
40
+
41
+ Download and Install
42
+ --------------------
43
+
44
+ .. facet::
45
+ :name: genre
46
+ :values: tutorial
47
+
48
+ .. meta::
49
+ :keywords: setup, composer, installation, code example
50
+
51
+ .. procedure::
52
+ :style: connected
53
+
54
+ .. step:: Install dependencies
55
+
56
+ Before you begin developing, ensure that you have the following
57
+ dependencies installed on your local machine:
58
+
59
+ - :php:`PHP <install>` version 7.4 or later
60
+ - `Composer <https://getcomposer.org/download/>`__ version 2.0 or later
61
+
62
+ .. step:: Install the MongoDB PHP extension
63
+
64
+ Run the following command to install the ``mongodb`` PHP extension:
65
+
66
+ .. code-block:: bash
67
+
68
+ sudo pecl install mongodb
69
+
70
+ .. step:: Update your PHP configuration file
71
+
72
+ To enable the ``mongodb`` extension in your PHP configuration file, add the
73
+ following line to the top of your ``php.ini`` file:
74
+
75
+ .. code-block:: none
76
+
77
+ extension=mongodb.so
78
+
79
+ .. tip::
80
+
81
+ You can locate your ``php.ini`` file by running the following command
82
+ in your shell:
83
+
84
+ .. code-block:: bash
85
+
86
+ php --ini
87
+
88
+ .. step:: Create a project directory
89
+
90
+ From your root directory, run the following command in your shell to create
91
+ a directory called ``php-quickstart`` for this project:
92
+
93
+ .. code-block:: bash
94
+
95
+ mkdir php-quickstart
96
+
97
+ Select the tab corresponding to your operating system and run the following commands
98
+ to create a ``quickstart.php`` application file in the ``php-quickstart`` directory:
99
+
100
+ .. tabs::
101
+
102
+ .. tab:: macOS / Linux
103
+ :tabid: create-file-mac-linux
104
+
105
+ .. code-block:: bash
106
+
107
+ cd php-quickstart
108
+ touch quickstart.php
109
+
110
+ .. tab:: Windows
111
+ :tabid: create-file-windows
112
+
113
+ .. code-block:: bash
114
+
115
+ cd php-quickstart
116
+ type nul > quickstart.php
117
+
118
+ .. step:: Install the {+php-library+}
119
+
120
+ To install the {+php-library+}, run the following command in your ``php-quickstart``
121
+ directory:
122
+
123
+ .. code-block:: bash
124
+
125
+ composer require mongodb/mongodb
126
+
127
+ After installing the library, include Composer's ``autoload.php`` file by adding the
128
+ following code to the top of your ``quickstart.php`` file:
129
+
130
+ .. code-block:: php
131
+
132
+ <?php
133
+
134
+ require_once __DIR__ . '/vendor/autoload.php';
135
+
136
+ After you complete these steps, you have a new project directory, a
137
+ new application file, and the library dependencies installed.
138
+
139
+ .. _php-create-deployment:
140
+
141
+ Create a MongoDB Deployment
142
+ ---------------------------
143
+
144
+ .. facet::
145
+ :name: genre
146
+ :values: tutorial
147
+
148
+ .. meta::
149
+ :keywords: cloud, host, atlas
150
+
151
+ You can create a free tier MongoDB deployment on MongoDB Atlas
152
+ to store and manage your data. MongoDB Atlas hosts and manages
153
+ your MongoDB database in the cloud.
154
+
155
+ .. procedure::
156
+ :style: connected
157
+
158
+ .. step:: Create a free MongoDB deployment on Atlas
159
+
160
+ Complete the :atlas:`Get Started with Atlas </getting-started>`
161
+ guide to set up a new Atlas account and load sample data into a new free
162
+ tier MongoDB deployment.
163
+
164
+ .. step:: Save your credentials
165
+
166
+ After you create your database user, save that user's
167
+ username and password to a safe location for use in an upcoming step.
168
+
169
+ After you complete these steps, you have a new free tier MongoDB
170
+ deployment on Atlas, database user credentials, and sample data loaded
171
+ into your database.
172
+
173
+ .. _php-connection-string:
174
+
175
+ Create a Connection String
176
+ --------------------------
177
+
178
+ .. facet::
179
+ :name: genre
180
+ :values: tutorial
181
+
182
+ .. meta::
183
+ :keywords: uri, atlas
184
+
185
+ You can connect to your MongoDB deployment by providing a
186
+ **connection URI**, also called a *connection string*, which
187
+ instructs the driver on how to connect to a MongoDB deployment
188
+ and how to behave while connected.
189
+
190
+ The connection string includes the hostname or IP address and
191
+ port of your deployment, the authentication mechanism, user credentials
192
+ when applicable, and connection options.
193
+
194
+ .. TODO:
195
+ To connect to an instance or deployment not hosted on Atlas, see
196
+ :ref:`php-connection-targets`.
197
+
198
+ .. procedure::
199
+ :style: connected
200
+
201
+ .. step:: Find your MongoDB Atlas Connection String
202
+
203
+ To retrieve your connection string for the deployment that
204
+ you created in the :ref:`previous step <php-create-deployment>`,
205
+ log in to your Atlas account and navigate to the
206
+ :guilabel:`Database` section and click the :guilabel:`Connect` button
207
+ for your new deployment.
208
+
209
+ .. figure:: /includes/figures/atlas_connection_select_cluster.png
210
+ :alt: The connect button in the clusters section of the Atlas UI
211
+
212
+ Then, select your user from the :guilabel:`Select database user`
213
+ selection menu. Select "PHP" from the :guilabel:`Driver` selection
214
+ menu and the version that best matches the version you installed
215
+ from the :guilabel:`Version` selection menu.
216
+
217
+ Select the :guilabel:`String` tab in the :guilabel:`Add connection string into your application code`
218
+ step to view only the connection string.
219
+
220
+ .. step:: Copy your Connection String
221
+
222
+ Click the button on the right of the connection string to copy it
223
+ to your clipboard, as shown in the following screenshot:
224
+
225
+ .. figure:: /includes/figures/atlas_connection_copy_string_php.png
226
+ :alt: The copy button next to the connection string in the Atlas UI
227
+
228
+ .. step:: Update the Placeholders
229
+
230
+ Paste this connection string into a file in your preferred text editor
231
+ and replace the ``<username>`` and ``<password>`` placeholders with
232
+ your database user's username and password.
233
+
234
+ Save this file to a safe location for use in the next step.
235
+
236
+ After completing these steps, you have a connection string that
237
+ corresponds to your Atlas cluster.
238
+
239
+ .. _php-run-sample-query:
240
+ .. _php-connect-to-mongodb:
241
+
242
+ Run a Sample Query
243
+ ------------------
244
+
245
+ .. facet::
246
+ :name: genre
247
+ :values: tutorial
248
+
249
+ .. meta::
250
+ :keywords: test connection, runnable, code example
251
+
252
+ After retrieving the connection string for your MongoDB Atlas deployment,
253
+ you can connect to the deployment from your PHP application and query
254
+ the Atlas sample datasets.
255
+
256
+ .. procedure::
257
+ :style: connected
258
+
259
+ .. step:: Edit your PHP application file
260
+
261
+ Copy and paste the following code into the ``quickstart.php`` file, which queries
262
+ the ``movies`` collection in the ``sample_mflix`` database:
263
+
264
+ .. literalinclude:: /includes/get-started/quickstart.php
265
+ :language: php
266
+ :dedent:
267
+
268
+ .. step:: Assign the connection string
269
+
270
+ Assign the ``MONGODB_URI`` environment variable to the connection string that you copied
271
+ from the :ref:`php-connection-string` step of this guide. You can assign this
272
+ variable by running a shell command or creating a ``.env`` file in your application,
273
+ as show in the following tabs:
274
+
275
+ .. tabs::
276
+
277
+ .. tab:: Shell Command
278
+ :tabid: shell
279
+
280
+ .. code-block:: sh
281
+
282
+ export MONGODB_URI=<connection string>
283
+
284
+ .. tab:: .env File
285
+ :tabid: dotenv
286
+
287
+ .. code-block:: none
288
+
289
+ MONGODB_URI=<connection string>
290
+
291
+ .. step:: Run your PHP application
292
+
293
+ In your project directory, run the following shell command to start the application:
294
+
295
+ .. code-block:: bash
296
+
297
+ php quickstart.php
298
+
299
+ The command line output contains details about the retrieved movie
300
+ document:
301
+
302
+ .. code-block:: none
303
+ :copyable: false
304
+
305
+ {
306
+ "_id": {
307
+ "$oid": "..."
308
+ },
309
+ ...
310
+ "rated": "R",
311
+ "metacritic": 80,
312
+ "title": "The Shawshank Redemption",
313
+ ...
314
+ }
315
+
316
+ If you encounter an error or see no output, ensure that you assigned the
317
+ proper connection string to the ``MONGODB_URI`` environment variable and
318
+ that you loaded the sample data.
319
+
320
+ After you complete these steps, you have a PHP application that
321
+ connects to your MongoDB deployment, runs a query on the sample
322
+ data, and returns a matching document.
323
+
324
+ .. _php-next-steps:
325
+
326
+ Next Steps
327
+ ----------
328
+
329
+ .. facet::
330
+ :name: genre
331
+ :values: reference
332
+
333
+ .. meta::
334
+ :keywords: learn more
335
+
336
+ Congratulations on completing the quick start tutorial!
337
+
338
+ .. include:: /includes/get-started/troubleshoot.rst
339
+
340
+ In this tutorial, you created a PHP application that
341
+ connects to a MongoDB deployment hosted on MongoDB Atlas
342
+ and retrieves a document that matches a query.
343
+
344
+
345
+ Learn more about the {+php-library+} from the following resources:
346
+
347
+ - Learn how to perform read operations in the :ref:`<php-read>` section.
348
+ - Learn how to perform write operations in the :ref:`<php-write>` section.
0 commit comments