#php #mongodb #composer-php
#php #mongodb #composer-php
Вопрос:
В большинстве руководств по PHP я вижу пример подключения к MongoDB с использованием библиотеки Composer, такой как:
<?php
require 'vendor/autoload.php'; // Composer
$client = new MongoDBClient("mongodb://localhost:27017");
Но в других руководствах я вижу:
<?php
$conn = new MongoDBDriverManager("mongodb://localhost:27017");
(Без использования библиотеки Composer!! Похоже, Composer в этом случае не нужен.)
-
В чем разница и в чем рекомендуемая практика использования?
-
Какой метод обладает лучшей производительностью?
Комментарии:
1. Первый использует PHP-библиотеку (оболочку, которая помогает и упрощает работу), а второй использует расширение MongoDB напрямую. Я бы выбрал первое.
2. Вы имеете в виду, что PECL — это оболочка, а composer напрямую использует расширение? На мой взгляд, должно быть наоборот.
3. Нет. То, что вы устанавливаете с помощью PECL, — это расширение PHP (скомпилированный код, написанный на каком-либо другом языке, обычно C, который предоставляет API для PHP). Установка расширения обязательна, если вы хотите использовать Mongo с PHP. Пакет composer
mongodb/mongodb
представляет собой библиотеку PHP (оболочку для PHP extensions API, упрощающую его использование). Это необязательно, но рекомендуется.4. «Но в других руководствах, которые я вижу» — Пожалуйста, поделитесь ссылками на эти руководства в вашем вопросе. Я лично хочу связаться с любым, кто публикует подобные вещи, чтобы прояснить их. Необходимость установки из двух разных источников действительно сбивает с толку и в какой-то степени приводит к сбою, но никто не должен публиковать руководства, в которых говорится по-другому. Будучи немного более кратким, чем «упрощает», то, что на самом деле делает пакет PHPLIB, представляет API, который совместим со всеми другими языковыми реализациями. «Основной» драйвер не имеет этого и в основном представляет собой «сырые» интерфейсы