use. Подключение модулей

^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, начиная от корня веб-пространства до директории с файлом - то есть так же, как это происходит при обработке запроса к странице.

Замечание: попытки подключить уже подключенные ранее модули не приводят к повторному считыванию файлов с диска.


Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 09.09.2024