Подтвердить что ты не робот

Где помещать вспомогательные функции в проект феникса?

В проекте phoenix/elixir: что является хорошим местом для размещения вспомогательных функций. Например: я использую Timex для обработки дат, но мне нужно сделать некоторые преобразования в возвращаемой структуре, чтобы использовать ее с моим драйвером DB ( один использует ключ: мин, другой: минута и т.д.). Я не хочу повторять эту часть кода в каждой модели и писать простую функцию, которая это делает. Что было бы хорошим местом для этого? Просто в модуле в папке /lib? Есть ли какие-либо рекомендации по организации этого?

4b9b3361

Ответ 1

Я не думаю, что есть рекомендации. Вы можете создавать модули, сгруппированные по темам, например MyApp.TimexHelpers, а затем импортировать их в тех местах, где вы действительно хотите использовать помощники.

Основное отличие между lib и web для Phoenix до 1.2 - это перезагрузка. Чтобы изменения в lib вступили в силу, вам необходимо перезагрузить сервер. Поэтому я стараюсь добавить большинство вещей в web, чтобы упростить разработку. Может быть, web/helpers...

Так как Phoenix 1.2 "каталог lib/теперь перегружается по умолчанию вместе с web/in development". См. Changelog.