PHP и MongoDB

Последнее обновление: 30.10.2015

В предыдущей главе был дан обзор основным концепциям и функциональностям MongoDB. Однако в реальности мало кто будет работать через консоль, вбивая в базу данных по одному документу. Как правило, база данных будет получать поток данных от внешнего приложения или наоборот возвращать ему эти данные. Поэтому нам потребуется организовать работу между MongoDB и приложением, написанным на одном из языков программирования. В качестве языка программирования, на примере которого будем рассматривать, подобное взаимодействие, выбран PHP, как один из наиболее распространенных языков.

Установка драйвера для PHP

Установим драйвер для языка PHP. Непосредственно сам драйвер можно загрузить со страницы проекта на гитхабе: https://github.com/mongodb/mongo-php-driver.

После загрузки драйвера и распаковки его пакета на Unix-системах следует ввести следующие команды:

phpize
./configure
make
sudo make install

И затем добавить в файл php.ini следующую строку:

extension=mongo.so

Для установки драйвера на ОС Windows надо загрузить последний пакет со страницы https://s3.amazonaws.com/drivers.mongodb.org/php/index.html. На текущий момент последним является пакет php_mongo-1.4.5.zip.

Итак, загрузим и распакуем этот архивный пакет. В нем будут находиться драйвера для возможных версий php. Надо выбрать ту, которая соответствует вашей версии php и положить соответствующий файл драйвера в каталог php/ext, где хранятся все расширения для php.

Затем надо внести изменение в файл php.ini, добавив в него следующую строчку в секцию, где идет подключение расширений:

extension=php_mongo-[версия].dll

Например, в моем случае c версией php 5.4 Tread Safe я добавил в каталог php/ext файл php_mongo-1.4.5-5.4-vc9.dll. И поэтому в php.ini я добавляю extension=php_mongo-1.4.5-5.4-vc9.dll

Затем перегружаем веб-сервер и тестируем. Для тестирования подключения драйвера mongodb можно воспользоваться стандартной функцией phpinfo(), выводящей всю информацию о php на веб-сервер. В нашем случае она должна вывести следующее:

Подключение MongoDB к PHP

Подключение к MongoDB из PHP

Подключив драйвер к php, теперь мы можем устанавливать соединение с базой данных и взаимодействовать с ней из кода php.

Чтобы установить соединение с бд, достаточно прописать в коде одну строку:

$connection = new Mongo();

В данном случае мы подключаемся к серверу, который запущен на localhost на стандартном порту 27017. Однако мы можем подключиться и к внешнему серверу:

$connection = new Mongo("somesite.com");

Здесь мы говорим подключиться к серверу MongoDB, который запущен на домене somesite.com и также на порту 27017. Если порт используется другой, то мы его также можем указать:

$connection = new Mongo("somesite.com:888");

После того, как работа с базой данных завершена, мы можем закрыть соединение, используя метод close:

$connection->close();

Создание документов в PHP

Ранее мы видели, что документ в mongodb фактически представляет объект в формате, аналогичном JSON. Он может хранить ключи, которым сопоставляются некоторые значения. Сами значения также могут представлять сложные объекты из ключей и значений. Так, мы создавали документ, представляющий отдельного человека:

> steve = ({	
	"name": "Steve", 
	"age": 25, 
	"languages": ["engish", "french"], 
	company: {
		"name": "Apple",
		"year": 1976
	}
})

Создадим аналогичный документ в PHP. Для этого воспользуемся ассоциативными массивами:

$steve = array(	
	"name" => "Steve", 
	"age" => 25, 
	"languages"=>  array("engish", "french"), 
	"company" => array(
		"name" =>  "Apple",
		"year" =>  1976
	)
)
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850