Материал для тех, что знает что такое map-файлы и с чем их едят. Небольшая заметочка.
В мап-файлах описываются колонки таблицы/объекта с указанием типа данных в БД и в PHP (типа как воспринимать на стороне PHP и в каком виде сохранять в БД). И здесь я хотел бы отдельно рассмотреть php-типы array и json.
Если указать php-тип array, то свойству объекта передаем массив, а в БД будет писаться сериализованная строка, типа a:1:{s:6:«sdfsdf»;s:6:«sdfsdf»;}
Вот часть мап-файла:
А вот исполняемый код:
На мой взгляд здесь самое неприятное это то, что передавать ему можно только массив (Хотя конечно можно задать его напрямую $o->entries = 'a:1:{s:6:«sdfsdf»;s:6:«sdfsdf»;}';, но все равно мне никогда не нравилось работать с сериаллизованными строками.).
А вот если указать phptype json, тогда объекту можно передавать как массив, так и JSON-строку. В БД всегда будет записана JSON-строка. То есть можно и так:
и так:
и так:
По-моему значительный такой плюс :) Можно совсем не заморачиваться с типом данных.
Хорошая заметка. Только я бы добавил, что при операторе
мы получим сырые данные, в том виде, как они хранятся в базе. Чтобы получить массив, нужен оператор
Да, справедливое замечание.