Использование устаревшего драйвера MongoDB с PHP7

Есть ли способ использовать устаревший драйвер Mongo PHP из PECL с PHP7? Возможно неофициальный форк с поддержкой PHP7 или инструкция по компиляции/модификации...


person Eugene Gorbov    schedule 02.01.2016    source источник
comment
Возможный дубликат stackoverflow. com/questions/34486808/ Я понял.   -  person Will    schedule 04.01.2016


Ответы (2)


Существует альтернатива, если вам действительно нужно использовать какой-либо пакет или библиотеку с сильными зависимостями от устаревшего драйвера php mongo, он называется «alcaeus: mongo-php-adapter». Он предоставляет библиотеку ext-mongo поверх библиотеки mongo-php (sic).

https://github.com/alcaeus/mongo-php-adapter

Если вы столкнулись с какой-либо проблемой с композитором, связанной с отсутствием устаревшего драйвера (известное сообщение «Запрошенное расширение PHP ext-mongo * отсутствует»), вы можете исправить это, добавив это в composer.json.

"предоставить": { "ext-mongo": "1.6.12"},

В этом случае, возможно, вы захотите взглянуть на эту тему (та же ситуация, но с героку): https://github.com/alcaeus/mongo-php-adapter/issues/67

person manuelbcd    schedule 15.11.2016

Нет, устаревший драйвер не поддерживает PHP7. Вот коммит и JIRA Ticket, где это было официально завершено.

Новый драйвер PHP MongoDB можно найти в PECL здесь (или GitHub).

Для установки достаточно:

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

Документацию по новому драйверу можно найти здесь. Я хотел бы включить примечание из документации:

В конечном счете, это расширение не предназначено для использования в одиночку. Пользователям следует рассмотреть возможность использования этого драйвера вместе с одной или несколькими пользовательскими библиотеками PHP, такими как mongo-php-library.

Новый драйвер mongodb/расширение PHP гораздо более низкоуровневый, чем устаревший драйвер mongo, и вам рекомендуется использовать библиотеку более высокого уровня поверх драйвера, а не использовать ее непосредственно в коде.

библиотека Mongo PHP (releases) — это официальная высокоуровневая библиотека для PHP, которую рекомендуется использовать в ваших проектах. Он все еще находится в бета-версии, но это по-прежнему кажется самым безопасным и перспективным путем вперед с PHP7.

Изменить: устаревший драйвер Mongo больше не активен.

person Will    schedule 03.01.2016
comment
Прежде всего, спасибо за редактирование. От правильного вопроса к неправильному. Я знаю о последнем коммите. Я знаю о новом драйвере. Я нахожу способ использовать устаревший драйвер с PHP7. Вот о чем я спрашиваю. - person Eugene Gorbov; 04.01.2016
comment
Без проблем. Правильно, устаревший драйвер просто не будет работать с PHP7. Вам придется изменить его вручную, чтобы он был совместим с новым API. Думаю, сейчас самое время перейти на новый драйвер. - person Will; 04.01.2016