Comments 12
я так понимаю в итоге получился инструмент, который преобразовывает {{...},{..},{{{..}..}..}} в массив? Получился рекурсивный проход обвернутый в «инструмент»? )
Нет. Получился шикарный фрэймворк для маппинга постгресных типов в пхпшные и обратно. Фишка не в том, что можно массивы туда-сюда гонять, а в том, что можно сделать отображение своих композитных типов постгри, любой сложности в PHP-шные ассоциативные массивы.
А если мы можем легко мапить типы, значит сможем также легко мапить хранимые процедуры. Маппер у Димы тоже есть — сам жду документации, поскольку я его использую, как выяснилось, не так, как задумывал автор %)
А если мы можем легко мапить типы, значит сможем также легко мапить хранимые процедуры. Маппер у Димы тоже есть — сам жду документации, поскольку я его использую, как выяснилось, не так, как задумывал автор %)
Буквально хотел написать что этот «маленький» скрипт + оформление как библиотеку напомнило «библиотеку» для генерации эксепшинов у Д. Котерова… а как оказалось это вы снова…
Дмитрий, вы можете проигнорировать мой совет, но я его дам, чтобы другие не делали «библиотеки» из маленьких скриптов: Не нужно создавать массивные обертки
Да, это круто, это удобно, бесспорно, но для парсинга строки копатся в документации к очередной библиотеке на мой вгляд уже перебор…
Может быть уже скоро вывод текста в тегах <div> тоже сделаем как библиотеку? С аттрибутами и тд? И на каждую подзадачу будем создавать свои либы?
Дмитрий, вы можете проигнорировать мой совет, но я его дам, чтобы другие не делали «библиотеки» из маленьких скриптов: Не нужно создавать массивные обертки
$parser = new DB_Pgsql_Type_Array(для таких задач.
new DB_Pgsql_Type_Array(
new DB_Pgsql_Type_String()
)
);
Да, это круто, это удобно, бесспорно, но для парсинга строки копатся в документации к очередной библиотеке на мой вгляд уже перебор…
Может быть уже скоро вывод текста в тегах <div> тоже сделаем как библиотеку? С аттрибутами и тд? И на каждую подзадачу будем создавать свои либы?
$parser = new DB_Pgsql_Type_Array(
new DB_Pgsql_Type_Array(
new DB_Pgsql_Type_String()
)
);
от это мне понравилось, не применительно к задаче, а вообще схема создавать правила как дерево парсеров
А «строковое представление этих данных» это случаем не обычный JSON?
Если глянуть в исходники библиотеки, то видно, что краевых условий и нюансов там действительно много. Например, NULL в array и hstore выглядит как NULL, в ROWTYPE — просто как пропуск значения между двух запятых. Кавычки квотятся по-разному: в array и hstore — слэшем, в ROWTYPE — удвоением. Соответствующие особенности и с квотингом слэшей и пустых строк, а также непустых строк (где-то их нужно заключать в кавычки, где-то нет).
Соответственно, данная библиотека полезна тем, кому нужно проверенное и покрытое тестами продакшен-решение, устойчивое к инъекциям и виду входных/выходных данных. Те, кто использует типы неактивно, вполне могут обходиться самодельными функциями.
Соответственно, данная библиотека полезна тем, кому нужно проверенное и покрытое тестами продакшен-решение, устойчивое к инъекциям и виду входных/выходных данных. Те, кто использует типы неактивно, вполне могут обходиться самодельными функциями.
Sign up to leave a comment.
DB_Pgsql_Type: прозрачное преобразование сложных типов PostgreSQL в PHP и обратно