درود خدمت شما دوستان گرامی . من یک پلاگ ساده نوشتم برای خودم به شرح زیر
def init(_params) do
end
def call(conn, params) do
# assign(conn, :user_ip_checked, params)
ip = to_string(:inet_parse.ntoa(conn.remote_ip))
user_banned_ip = case RedisQuery.get_all_fields_from_record("ip", ip) do
[[]] ->
assign(conn, :user_ip_checked, params)
_ ->
conn
|> put_status(403)
|> json(%{error_code: "403", error_msg: "your IP is banned, please try again later."})
|> halt()
end
user_banned_ip
end
یک چندتا سوال داشتم :
دقیقا فانکشن init چی هست ؟ چه کاری رو انجام می ده . یک جا خوندم برای اعمال تنظیمات اون هم برای یک بار پر می شه ولی call همیشه در حال محاسبه هست و … یا بد ترجمه کردم یا بد فهمیدمش .
ما همه کد های پلاگ مون رو در call می نویسیم و اونجا اصل کد رو فراخوانی می کنیم ولی init چه کاربردی دارد ؟ در چند پلاگ ساده دیده بودم این بخش init تقریبا هیچ کاری در اون انجام داده نمی شد
آیا باید init حتما چیزی رو برگشت بده یا مثل کد بنده که خالی هست و params رو با _ قرار دادم مشکلی ایجاد نمی کنه؟
قطعه کد ساده ای که در init باشه سام عزیز دارید مثلا چه چیزی رو می شه در اون کاربردی قرار داد ؟
درود خدمت اساتید و دوستان عزیزم. یک سوالی برام مطرح شده . از اونجا که پلاگ در اولیت بالایی در فونیکس مطرح است آیا جز مواردی مثل بررسی درخواست و … رو هم باهاش انجام داد یا خیر ؟
به عنوان مثال من خودم فکر می کنم مثلا اگر بخوام مثلا تمام اطلاعات یک پلی لیست اکانت از یوتیوب رو بگیرم بهتر است یک فانکشن خوب بنویسم تا اینکه یک پلاگ بنویسم آیا شما هم همین نظر رو دارید ؟ فکر کنم اگر چنین کاری رو با پلاگ کنم شاید در برنامه هم تاثیر منفی بزاره درسته ؟
اگر می شه دلایلتون بگید ممنون می شم . قبلا @samdvr عزیز یک عکس در پست ها قرار داده بود که اولیت هارو در فونیکس نشون می داد نظرمو نسبت به اون پست مطرح کردم
حالا چرا پلاگ . معمولا پلاگ به صورت خودکار منو یاد پلاگین در جوملا یا سیستم های مدیریت محتوا می اندازه انگار نوع اورگانیزیشن خوبی رو برام فراهم می کنه تا کد هام خوانا تر بشند . به همین منظور گرایشی بیشتر نسبت به این موضوع پیدا کردم وگرنه در این دسته موارد به سادگی هرچه تمام تر حتی بهتر می شه در فانکشن زد البته در یک ماژول