^use[файл]
^use[файл;опции] [3.4.3] $.replace(true)
Оператор позволяет использовать модуль из указанного файла. Если путь к файлу начинается с косой черты «/», то считается, что это путь от корня веб-пространства (а не от корня диска!). В любом другом случае Parser будет искать модуль сначала относительно файла, из которого происходит подключение модуля, а затем - двигаться по путям, определенным в переменной $CLASS_PATH в Конфигурационном методе.
Внимание: до версии 3.4.1 поиск подключаемых модулей производился не относительно файла, в котором написаны @USE/^use[], а осуществлялся либо относительно корня веб-пространства, либо по путям, определенным в $CLASS_PATH.
Внимание: начиная с версии 3.4.3 в случае загрузки класса с именем, которое уже существует у ранее загруженного класса, выдается исключение. Вернуть поведение без исключения можно с помощью указания вновь появившейся опции $.replace(true).
Для подключения модулей также можно воспользоваться конструкцией:
@USE
имя файла 1
имя файла 2
…
Разница между этими конструкциями состоит в том, что использование @USE подключает файлы с модулями до начала выполнения кода, в то время как оператор use может быть вызван непосредственно из тела программы, например:
^if(условие){
^use[модуль1]
}{
^use[модуль2]
} @USE начиная с версии 3.4.5 вызывает оператор ^use[], который, как и любой другой оператор, можно переопределить. Это позволяет реализовать свою логику загрузки модулей. Реализация логики оператора ^use[] на Parser доступна по ссылке.
Начиная с версии 3.4.6, при указании опции $.main(true) перед загрузкой файла будут загружены все существующие auto.p, начиная от корня веб-пространства до директории с файлом - то есть так же, как это происходит при обработке запроса к странице.
Замечание: попытки подключить уже подключенные ранее модули не приводят к повторному считыванию файлов с диска.