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

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

Крайне рекомендуем использовать возможность сохранения результатов работы кода, используя оператор
use для подключения необходимых модулей в коде оператора cache.


In order to add comments you must register.
Copyright © 1997–2021 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 27.01.2021