Предыстория:
У меня есть Microsoft SQL Server в качестве СУБД за моим REST API Yii2.SQL Server имеет свои внутренние типы данных: geography
и geometry
.Технически, с точки зрения PDO, эти типы являются двоичными строками PHP
Вопрос:
Итак, мне нужен прозрачный способ сопоставления столбцов этих типов, например, с моим классом MyApp\Geometry
.То есть я должен иметь возможность:
- получить доступ к свойству экземпляра ActiveRecord как
Geometry
экземпляр (например, $model->geometryBorders->someGeometryTransformation();
- сохранить экземпляр ActiveRecord с
Geometry
преобразованием свойства с помощью __toString()
метод
По второму пункту - мне кажется, это понятно (насколько я понимаю, механизм PDO автоматически конвертирует все значения в строковый тип PHP перед отправкой их в СУБД), но о первомДело в том, что я не знаю, как реализовать его в архитектуре Yii2
Итак, есть ли способ сопоставить атрибут ActiveRecord с классом PHP? Я верю, что кто-то уже сталкивался с этой проблемой раньше.