ویرگول
ورودثبت نام
میثم محمودی
میثم محمودیبرنامه نویس فول استک با +11 سال تجربه کاری، در درجه نخست، توسعه بکند با استفاده از لاراول، سپس توسعه فرانت اند با استفاده از انگولار و ری‌اکت
میثم محمودی
میثم محمودی
خواندن ۲ دقیقه·۶ ماه پیش

لاراول 𝟭𝟮.𝟮𝟭.𝟬 منتشر شد به همراه دو ویژگی جدید کد شما رو تمیزتر میکند

فریمورک محبوب لاراول به تازگی نسخه 𝟭𝟮.𝟮𝟭.𝟬 را منتشر کرد که این نسخه به همراه دو ویژگی جدید است که می تواند به طور جدی کدنویسی شما را بهبود ببخشد.

یک متود (method) جدید، whereValueBetween() در کوئری بیلدر و اعتبارسنجی سخت گیرانه برای مقادیر عددی و منطقی (boolean).
اگر از لاراول برای توسعه اپلیکیشن خودت استفاده میکنی، این مطلب رو از دست نده.

ویژگی نخست: چک کردن یک مقدار بین دو ستون

این سناریو رو در نظر بگیرید:
شما میخواهید یک مقدار(تاریخ) بین دو ستون start_date و end_date را چک کنید. قبلا برای انجام دادن این کار باید به این صورت عمل می کردیم:

Article::where('start_date', '<=', now()) ->where('end_date', '>=', now()) ->get();

یا حتی اینطوری یه کمی کثیف تر:

Article::whereRaw('? BETWEEN start_date AND end_date', [now()]) ->get();

اما حالا با استفاده از متود جدید whereValueBetween() کد ما خیلی تمیزتر خواهد بود:

Article::whereValueBetween(now(), ['start_date', 'end_date'])->get();

و تمام! این متود هدف کد را واضح تر و خواندن کوئری را آسان تر می‌کند. برای فیلترهای مبتنی بر زمان، رنج قیمت ها و یا هرنوع گزینه ای که نیاز به مقایسه در دو ستون داره، عالی است.

توابع دیگر

لاراول همچنین چند متود مرتبط دیگر برای شرایط پیچیده تر افزوده است:

  • orWhereValueBetween()

  • whereValueNotBetween()

  • orWhereValueNotBetween(

این توابع به شما انعطاف پذیری بیشتری برای نوشتن کدهای رسا ( و تمیز) و کوئری های قابل خواندن بدون نیاز به نوشتن شرطهای خام (raw conditions) می دهد.

ویژگی دوم: اعتبارسنجی سخت گیرانه برای نوع عددی (Number) و منطقی (Boolean)

این ویژگی (feature) می تواند تغییراتی محسوسی را به برنامه شما به ارمغان بیاورد اگر شما به یکپارچگی نوع داده (data type integriy) اهمیت می دهید.

حالا لاراول از اعتبارسنجی سخت گیرانه برای نوع (type) عددی و منطقی پشتیبانی می‌کند. با افزودن :strict به rule مدنظر، لاراول نه تنها مقدار رو بلکه نوع (type) را نیز اعتبارسنجی (validate) می‌کند.

مثال های مربوط به نوع عددی

Validator::make(['age' => '25'], ['age' => 'numeric:strict']); // fails (string) Validator::make(['age' => 25], ['age' => 'numeric:strict']); // passes

مثال های مربوط به نوع منطقی

Validator::make(['active' => true], ['active' => 'boolean:strict']); // passes Validator::make(['active' => '1'], ['active' => 'boolean:strict']); // fails

بدون استفاده از :strict لاراول کاملا سخاوتمندانه عمل می کند، 1 یا 'true' ( بعنوان رشته) به طور معمول پذیرفته می شوند. اما در در برخی موارد، اعتبارسنجی سخت گیرانه می تواند جلوی باگ های مرتبط به نوع داده را بگیرد.

چرا این موضوع اهمیت زیادی دارد؟

این دو ویژگی ممکن به نظر کوچک برسند اما آنها می توانند منتهی شوند به:

  • کدهای تمیزتر و رساتر

  • انسجام بهتر داده و امنیت

  • نگهداری و دیباگ راحت تر

اگر شما همین الان از لاراول 12 استفاده می کنید، حتما به نسخه 12.21.0بروزرسانی کنید و این ویژگی ها ( features) را امتحان کنید. اینها بسیار مفید هستند خصوصا در پروژه هایی که خوانایی و قابلیت اطمینان (reliability) اهمیت زیادی دارد.

لاراولlaravel
۱
۰
میثم محمودی
میثم محمودی
برنامه نویس فول استک با +11 سال تجربه کاری، در درجه نخست، توسعه بکند با استفاده از لاراول، سپس توسعه فرانت اند با استفاده از انگولار و ری‌اکت
شاید از این پست‌ها خوشتان بیاید