Я делаю сайт на PHP с различными конфигурационными файлами в зависимости от компании, которая использует его в данный момент.
Каждая компания имеет +/- 15 конфигурационных файлов с одинаковыми переменными, но, конечно же, разными значениями. Теперь каждая компания должна иметь возможность легко изменять настройки, поэтому мы сохраняем настройки в базе данных MySQL. База данных имеет 3 столбца «company_id», «setting» и «value».
Когда я читаю элементы конфигурации из базы данных, тип переменной всегда является «строкой». Так что, конечно, оператор if «if ($ setting-> value === false)» не выполняется …
Есть ли простой способ изменить тип переменной, соответствующей возвращаемому значению из базы данных?
Если вы хотите хранить произвольные типы в одном столбце базы данных, вам придется сериализовать их в строковое представление, из которого вы можете снова отменить сериализацию значения. PHP предлагает serialize
а также unserialize
для этой цели, но вы также можете использовать не зависящий от языка формат, такой как JSON, XML или YAML.
Других решений пока нет …