Я ищу механизм построения запросов для PHP (, а не ORM!), Который удовлетворял бы некоторым критериям, указанным ниже. К сожалению, после изучения Doctrine, Propel, Adodb, Zend_Db и т. Д. Я не смог найти ничего, что бы действительно соответствовало профилю - они либо слишком абстрактны (мне не нужна абстракция уровня ORM), либо не поддерживают достаточное количество функций , Что мне нужно, так это библиотека, которая позволила бы мне создавать SQL-запрос программно - он мне даже не нужен для запуска, хотя это тоже будет нормально.
Я действительно хотел бы не изобретать велосипед, поэтому, если вы знаете что-то, что соответствует профилю, пожалуйста, внесите его. Если вы считаете, что один из названных выше подходит (и я пропустил это), пожалуйста, скажите мне тоже.
ДОЛЖЕН ИМЕТЬ (если в библиотеке его нет, для меня это бесполезно):
- Поддержка PHP 5.2 (к сожалению, библиотеки с пространством имен пока не могут использоваться)
- Поддержка программной генерации запросов, включая выражения выбора, упорядочение, ограничение, группирование, наличие, объединения, внешние объединения и т. Д.
- Поддержка Mysql, Oracle oci8, MSSQL, DB2, Postrges
- Поддержка построения именованных параметризованных запросов и подготовленных операторов
- Поддержка добавления условий / динамического присоединения в любой точке
- Поддержка типов данных, таких как datetime и т. Д. - например, правильное форматирование входящих / исходящих данных, использование надлежащих функций сравнения, если это необходимо, и т. Д. (И, конечно, правильное цитирование). Мы знаем типы всех полей в коде, поэтому библиотека должна позволять нам сообщать, что это за каждое поле.
- Автономный (простой в использовании без множества других классов поддержки)
- Простота расширения, а лицензия позволяет распространяться на условиях, аналогичных BSD
- Чистый код PHP 5 (без перебора объектов в PHP 4 и т. Д.)
ХОРОШО ИМЕТЬ (мы могли бы реализовать это поверх "must have", но было бы счастливее, если бы это было уже сделано)
- Поддержка создания экземпляров параметризованных запросов (полных и частичных), т. Е. После создания поддержки запросов, которая дает ему часть параметров и создает новый запрос с заменой этих параметров
- Поддержка объединения двух запросов (т.е. добавление условий и таблиц из одного запроса в другой)
- Поддержка запросов комментариев (включая их параметризацию)
БОНУС (это действительно сделало бы нас счастливыми, но мы могли бы жить без него сейчас)
- Поддержка сериализации
- Поддержка кэширования
Так, кто-нибудь знает такую библиотеку?