Где в моем приложении Dancer я должен использовать модули, необходимые для восстановления объектов из сеанса?

Я использую некоторые объекты Moose, которые я извлекаю из Redis. Я написал код, который определяет правильные классы и загружает их по требованию. Теперь я сохраняю их и в сеансе, и когда они восстанавливаются (с помощью механизма Session, а не моего собственного кода поиска Redis), бывает, что необходимый модуль еще не загружен.

Подумав, я понял, что это связано с тем, что я продолжаю перезапускать приложение Dancer при тестировании после внесения изменений в обработчики маршрутов, но мой сеанс по-прежнему действителен. В производстве это, скорее всего, не произойдет. Там модули были загружены в какой-то момент, особенно потому, что вам нужно восстановить объект перед тем, как поместить его в сеанс.

Однако я хотел бы это исправить, поэтому динамическая загрузка больше не нужна, и я не могу столкнуться с этой проблемой can't call method foo on an undefined value, потому что модуль еще не загружен. Но где бы я разумно поместил все эти use s? Есть только несколько из них, поэтому не стоит их загружать заранее.

Я думал, что основной .pm файл, который use d в файле app.pl может иметь смысл. Или, может быть, сам app.pl, хотя это кажется неправильным. Есть ли лучшая практика для этого?

1 ответ

~/lib/ваше имя приложения here.pm файл будет моим предложением разместить ваш код модуля использования, так как это часто файл, используемый для обработки маршрутов.

licensed under cc by-sa 3.0 with attribution.