Я пытаюсь загрузить расширение Sqlite3 в проект Doctrine 2 (в частности, расширение pcre, которое я установил через пакет debian sqlite3-pcre).
В простом проекте PHP я бы сделал что-то похожее на
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('pcre.so');
(согласно http://php.net/manual/en/sqlite3.loadextension.php).
Моя проблема в том, что я не знаю, где указать Doctrine для вызова loadExtension или любого другого способа загрузить это расширение.
Боковые примечания:
Symfony 4. Причина, по которой я использую Sqlite3, - это мои функциональные тесты (среды разработки и производства используют Postgresql).DoctrineExtensions (например, в https://github.com/beberlei/DoctrineExtensions/blob/master/src/Query/Mysql/Regexp.php):
Postgresql с использованием оператора ~. Этот отлично работает.Sqlite3 с использованием оператора REGEXP из расширения pcre. Этот жалуется, что REGEXP не определен, так как мне не удалось загрузить расширение pcre.Буду благодарен за любую идею о том, как решить эту проблему.
@RiggsFolly Во вселенной Symfony нередко есть функциональные тесты, которые запускаются в тестовой базе данных, в зависимости от того, что вы тестируете. Считайте их промежуточными между модульными и функциональными тестами (и, конечно, вы можете проводить «реальные» тесты в базе данных, подобной продуктам). Пакет, который мы используем для наших тестов, - github.com/liip/LiipFunctionalTestBundle, и следует этой философии. Он рекомендует использовать базу данных sqlite3 в памяти для повышения скорости, что мы и делаем. Расширение Postgres Doctrine Extension для регулярных выражений, которое не используется в этих функциональных тестах, тестируется отдельно.
@NicolasB Удалось ли вам найти решение с тех пор, как вы разместили этот вопрос? Я столкнулся с проблемой желания протестировать запрос REGEXP в базе данных sqlite.
@Boschman К сожалению, нет. Два возможных решения приведены в stackoverflow.com/questions/8756146/…, но они были немного излишними для нашей проблемы, поэтому мы решили отказаться от этого.
@NicolasB Спасибо! Сейчас я работаю над решением без sqlite в тестовой среде.






Конечно, это не валидный тест, если вы не используете все те же инструменты в тесте.