2015-11-26 11 views
19

Bir Phoenix/Elixir projesinde: Yardımcı fonksiyonların yerleştirilmesi için iyi bir yer. Örneğin: Ben tarihler ile başa çıkmak için Timex kullanın, ancak DB sürücüsüyle kullanmak için döndürülen yapıda bazı dönüşümler yapmak zorundayım (biri anahtar kullanır: min, diğer: dakika, vb). Bu kod parçasını her modelde tekrarlamak istemiyorum ve bunu yapan basit bir işlev yazacaktım. Bunu koymak için iyi bir yer ne olurdu? Sadece/lib klasörü içindeki bir modülde mi? Bunu nasıl organize edeceğiniz konusunda herhangi bir yönerge var mı?Bir phoenix projesinde yardımcı işlevler nereye yerleştirilir?

cevap

34

Henüz yönergeler olduğunu sanmıyorum. Konuya göre gruplandırılmış modüller oluşturabilir, MyApp.TimexHelpers gibi ve daha sonra yardımcıları kullanmak istediğiniz yerlerde bunları içe aktarabilirsiniz.

1.2 önce Phoenix lib ve web arasındaki temel fark, yeniden yükleme davranıştır. Etkili olması için lib altındaki değişiklikler için sunucunuzu yeniden başlatmanız gerekir. Bu yüzden gelişimi kolaylaştırmak için çoğu şeyi web'un altına koymaya eğilimliyim. Belki web/helpers ...

Phoenix 1.2 yana "lib/dizin gelişiminde/web ile birlikte varsayılan olarak yeniden kod artık". Bakınız Changelog.

+12

Mükemmel cevap. –