onPHP/onphp-framework — pull request #135 by AlexeyDsov (2012-09-16 18:06:53+00:00)
Title: Диалекты: теперь не синглтоны и менее статичны

Так сложилось, что текущие способы работы с базами данных требуют подключения к базе данных, т.к. на основе него определяют как корректно выполнять ту или иную операцию (например, эскейпинг строки). Если в методе не задается соединение к базе, то он использует первое попавшееся. Это касается всех баз - sqlite, postgres, mysql. По этой причине я сделал все диалекты не синглтонами, их пораждает наследник DB (PgSQL, MySQL и т.д.) по требованию getDialect и задаёт себя диалекту, что бы он имел возможность использовать коннект к базе что бы часть методов таких как quoteValue, ставшие не статическими, могли указывать какое соединение к базе данных они используют.

Внешне для обычного использования API измениться не должно было. В коде кроме метода DB::getDialect и различных тестов никто не вызывал статически методы *Dialect::me и другие ставшие не статическими.

Сами тесты были переписаны таким образом, что они получают базу и диалект из тестового конфига.