Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Динамическая подгрузка библиотек. |
Автор: GoDleSS 7.8.2008, 12:41 | ||
Добрый день, уважаемый форумчане! Решил заняться переработкой своей в общем-то отставшей от жизни CMS-ки. В первую очередь занимаюсь универсализацией и методами повышения удобства создание модулей под нее(на данном этапе нельзя назвать полноценно модульной, но к тому стремлю). В данный момент поднимаю задачу следующего характера: Есть некий набор входящих в дистрибутив библиотек. Часть грузится уже в index.cgi и необходимы для работы системы в целом. Но большинство нужны не всегда и не везде, посему грузить их сразу нет смысла. Хотелось бы, чтобы при вызове модулем метода new какого-то пакета эта либа динамически подгружалась. Сейчас проблема решена заменой вызова конструктора на метод-прослойку. Т.е. в упрощенном примере:
Но подобный подход себя не слишком оправдывает по нескольким причинам: Имя пакета должно строго совпадать с положением библиотеки(хотя это можно решить, читай из либы имя пакета и чуть доточив напильником. Модуль, содержащий несколько пакетов, уже будет сложнее использовать. Сам вызов не смотрится. ...еще много можно нафлудить... Зачем я сие делаю? Уменьшаю по возможности объем кода теоретических будущих модулей ЦМСки, даю дополнительный потенциал логеру, стараюсь более точно динамически отслеживать работу модулей. Ну и просто интересно ![]() Есть ли у кого идеи или наброски по более красивым решениям задачи? |
Автор: ginnie 7.8.2008, 13:07 |
Уважаемый GoDleSS, как вариант, можно посмотреть http://search.cpan.org/~adamk/Class-Autouse/lib/Class/Autouse.pm. |