Использование ссылок влияет на производительность GC, т.к. он не может сразу же освободить память и требуется дополнительный проход по графу зависимостей во время фазы очистки (в большинстве случаев в конце выполнения файла)
Все новички всегда совершают идентичные ошибки... Это не авторизация, а аутентификация. Авторизация - это проверка прав пользователя (например, модератор может забанить другого юзера, а обычный юзер - нет).
JastaFly, давай построчно, думаю первые 5-10 будет достаточно, остальное по такому же принципу:
1) Глобальные константы с die - это сайд эффект, который никак не отлаживается, не логгируется, в случае саксесса приводит к "а почему у меня белый экран" и вообще непонятно зачем.
2) 604800 - это мейджик, который должен быть константой или полем класса, который имеет сабжевый дефолт.
3) "library_classifiers_result_" - это что вообще такое? Префикс? Он должен быть в префиксе. Если это единица кеширования, то префикс является частью объекта кеширования. Как проверить на коллизии в другом месте? Почему префиксы не являются частью словаря, например? Короче тысячи решений, которые бы были лучше, нежели хардкод.
4) arParams не определён, а значит ошибка, которая может конвертироваться в фатал. Даже если это глобальное состояние адского процедурного трешачка. Потому что единица компиляции пыха - это файл. А значит он должен быть самодостаточен, либо явно сообщать о проблемах ещё до его запуска, а не в середине выполнении операции (идемпотентность и все дела).
5) arParams['SEARCH'] - это что такое и где установлен? Если это внешний аргумент, то он кому-то принадлежит и где-то должен быть определён, чтоб потом не лазать по всему коду в поисках "а где бы ещё поправить, что б переименовать его"
6) nosearch - втф?
7) '/iblock/library_classifiers/' - тоже непонятная "что?".
8) Иф окончился. Файл полностью мутабельный и содержит кучу сайд эффектов.
Артем Золин, так все делают не потому что это правильно, а потому что так делает большинство. Да и то, большинство это делает не через галп, а через вебпак...
А всё потому, что это самое "большинство", которое пишет CSS ещё и пишет код на JS, как следствие и выбирает инструменты на JS.