![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
GoDleSS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 11.2.2007 Где: Пироговский Репутация: 2 Всего: 2 |
Добрый день, уважаемый форумчане!
Решил заняться переработкой своей в общем-то отставшей от жизни CMS-ки. В первую очередь занимаюсь универсализацией и методами повышения удобства создание модулей под нее(на данном этапе нельзя назвать полноценно модульной, но к тому стремлю). В данный момент поднимаю задачу следующего характера: Есть некий набор входящих в дистрибутив библиотек. Часть грузится уже в index.cgi и необходимы для работы системы в целом. Но большинство нужны не всегда и не везде, посему грузить их сразу нет смысла. Хотелось бы, чтобы при вызове модулем метода new какого-то пакета эта либа динамически подгружалась. Сейчас проблема решена заменой вызова конструктора на метод-прослойку. Т.е. в упрощенном примере:
Но подобный подход себя не слишком оправдывает по нескольким причинам: Имя пакета должно строго совпадать с положением библиотеки(хотя это можно решить, читай из либы имя пакета и чуть доточив напильником. Модуль, содержащий несколько пакетов, уже будет сложнее использовать. Сам вызов не смотрится. ...еще много можно нафлудить... Зачем я сие делаю? Уменьшаю по возможности объем кода теоретических будущих модулей ЦМСки, даю дополнительный потенциал логеру, стараюсь более точно динамически отслеживать работу модулей. Ну и просто интересно ![]() Есть ли у кого идеи или наброски по более красивым решениям задачи? Это сообщение отредактировал(а) GoDleSS - 7.8.2008, 12:42 --------------------
It's a nice day to die my friend! |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый GoDleSS, как вариант, можно посмотреть Class::Autouse.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |