Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
В ядре битрикса в файле bitrix/modules/main/tools.php на 4613 строке, длинной в 141 строку (жаль здесь ограничение на 100 строк), есть замечательный метод который по сути почти повторяет json_encode().
Почти - это потому, что это говно генерит невалидный json (использует одинарные ковычки), да еще не учитывает типы (true превратится в строку 'true').
Битриксоиды этим подосрали даже не веб-студиям, они просто нагенерировали себе много дополнительной работы на долгое время вперед.
Если Вы считаете, что они не написали свой парсер XML, то вы очень жестко заблуждаетесь))
Когда-то давно, когда еще только начинал знакомство с битриксом и PHP, решил использовать для решения реальной задачи их XML парсер (потому что не знал, какие вообще есть способы решить задачу). Все настроил, натравили скрипт на реальные данные. И оказалось, что работает очень долго, сервер падает и т.д. Тогда я чуть-чуть погуглил, заменил парсер на SimpleXML. И оказалось, что все работает прекрасно, быстро, никаких проблем больше не возникало. Вот в тот момент я понял, что из себя представляют все эти велосипеды от битрикса.
А вообще да, PhpToJSObject это тот еще велосипед. Они в своем ядре его используют обычно, чтобы присваивать js переменной и потом использовать. Вообще я так думаю, они написали все эти велосипеды, чтобы битрикс работал на любом окружении, с любыми настройками сервера и т.д. Возможно, свой отпечаток наложил тот факт, что раньше большую долю составляло использование битрикса на кодировке 1251, где есть нюансы использования стандартных функций.
Теперь пускай XmlToPHP напишут
Когда-то давно, когда еще только начинал знакомство с битриксом и PHP, решил использовать для решения реальной задачи их XML парсер (потому что не знал, какие вообще есть способы решить задачу). Все настроил, натравили скрипт на реальные данные. И оказалось, что работает очень долго, сервер падает и т.д. Тогда я чуть-чуть погуглил, заменил парсер на SimpleXML. И оказалось, что все работает прекрасно, быстро, никаких проблем больше не возникало. Вот в тот момент я понял, что из себя представляют все эти велосипеды от битрикса.
А вообще да, PhpToJSObject это тот еще велосипед. Они в своем ядре его используют обычно, чтобы присваивать js переменной и потом использовать. Вообще я так думаю, они написали все эти велосипеды, чтобы битрикс работал на любом окружении, с любыми настройками сервера и т.д. Возможно, свой отпечаток наложил тот факт, что раньше большую долю составляло использование битрикса на кодировке 1251, где есть нюансы использования стандартных функций.
А вообще. Это уже старое ядро. В новом ядре D7 ребята написали много новых велосипедов:
http://bxapi.ru/src/?module_id=main&name=Json%3A%3Aencode
http://bxapi.ru/src/?module_id=main&name=Json%3A%3Adecode
По сути, теперь просто обертка для php функций.
Судя по названию, оно генерить "JS", а не "JSON", так что норм.
JsonToPhp слабо запилить?