@Anonym Во-первых, что плохого в глобальных переменных?
Во-вторых, в моём случае статическая переменная не прокатит, т.к. нужно объединять функции.
В-третьих, чем ваш синглтон отличается от моего кода?
Понятия не имею.
json_encode используется у меня в коде постоянно, поэтому я переписал его. Остальные функции (которые можно переписать) я использую редко, поэтому ими не занимался.
Дополню свой ответ.
Люди тут советуют использовать Trace в Illustrator (аналог Векторизации в Inkscape). Метод хорош для простых рисунков, но для сложных получите кашу.
Мой метод и Trace можно комбинировать. ТО есть сначала прогоняете через билатерал, а затем векторизуете.
Я уже сказал. Сериализуете массив и записываете в поле.
Вариант, который вы отметили, как решение, будет работать до встречи с первым нестандартным символом.
Объективных причин превосходства классов над функциями нет, кроме 3 случаев: необходимости инкасуляции, наследования и полиморфизма.