parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 18.09.2021 02:58 / 18.09.2021 16:25

1. В связи с этим возникает вопрос: с точки зрения нагрузки нормально ли использовать reflection и вообще не использовать ^use[] отдельно?
Если @reflection вызывается не тысячу раз в цикле, то никаких проблем, разовая операция.

Больше смущает сложность логики — с таким потом очень непросто работать.
У меня есть пара мест, где используется свойство с ^reflection:filename[$self], но это вынужденная мера, в очень хитрой и динамической иерархии классов с модульностью и «множественным наследованием» и в целом такого лучше избегать.
2. Если ответ на вопрос из п.1 - да, то возникает второй вопрос: как при создании класса или вызова его метода работать с относительным путем класса?
Посмотрите в сторону @autouse.
Там можно заложить любую логику, которая будет срабатывать при поиске класса.

Также можно положить путь в статическое поле класса при загрузке в методе @auto — получится разовое динамическое определение расположения файла:
@auto[filename]
$self.filename[$filename]
В целом, без работающего примера, детали вопроса неясны.
Но, зная размещение текущего класса, можно строить любой относительный путь для вызовов.