نگاهی به امکانات نسخه جدید لاراول ۵٫۳

Laravel یکی از فریم‎ ورک‎ های زبان  PHP است که برای توسعه اپلیکیشن ‎های وب در نظر گرفته شده است و بر پایه MVC کار می‎ کند.

همانطور که میدانید معماری MVC معماری برنامه نویسی تحت وب می باشد که اخیرا به خاطر کدنویسی مرتب و امنیت بالا  هم اکنون در بیشتر شرکت ها و سازمان های مهم حوزه برنامه نویسی از این معماری برای طراحی و توسعه سیستم های تحت وب خود استفاده میکنند.  فریم ورک لاراول نیز از این قائده مهم برنامه نویسی تحت وب مستثنی نگشته و با سه لایه اصلی Model و View و Controller برای کدنویسی تحت وب خود استفاده میکندفریم‎ ورک لاراول، برنامه‎ نویسی برنامه‎ های کاربردی تحت وب با زبان PHP را ساده‎تر می‎ نماید و کمک بسزایی برای انجام پروژه ‎های  PHP و توسعه آسان آن‎ها می‎ کند. فریم ‎ورک Laravel بر روی اجزای مختلف فریم ورک symfony ساخته شده است و به برنامه شما پایه‎ای بزرگ از کد ‎های قابل اعتماد و تست شده می ‎دهد. لاراول مجموعه ای از بهترین راه حل ها با سینتکس پر معنا و خلاقانه را ارائه می‌کند که به درستی انجام می‌ پذیرند. لاراول توسط آسان سازی کارهای معمول مانند احراز هویت، روتینگ، sessionها ، کار با بانکهای اطلاعاتی و … که تقریبا در تمامی پروژه های تحت وب استفاده می‌شوند، مسائل و مشکلات ناشی از توسعه را هم برای توسعه دهنده و هم برای کارفرما کاهش می دهد. لاراول، سیمفونی، کیک پی اچ پی و کد ایگنایتر از محبوب ترین فریم ورک های زبان PHP هستند که بررسی میزان محبوبیت آنها در گوگل ترند حاکی از رشد روز افزون فریم ورک Laravel است.

اما فریم ورک لاراول با انتشار نسخه جدید خود کار برنامه نویسان در این حوزه را در بسیاری از موارد آسان کرده است که در این جا به برخی از ویژگی های مهم و جالب توجه اشاره خواهیم کرد:

لاراول در نسخه ۵٫۲ تغییرات کوچکی داشت، تغییراتی که کار برنامه نویس رو برای کنترل تعداد درخواستهایی یک آدرس آی پی ساده میکردند، یا امکان استفاده از چند مرجع برای تشخیص هویت کاربران و لاگین بودن انها. برای مثال وقتی جدولی دارید که ادمین های سیستم رو اونجا نگه میدارید و جدولی دارید که دانش آموزهارو ذخیره میکنید میتونید با استفاده از متدهای تعریف شده روی Auth نسبت به هر یک از جدولها آنها را احراز هویت کنید. امکان خوب ایجاد ساختار Auth به شکل خودکار رو هم میتونید توی نسخه ۵٫۲ ببینید و همینطور implicit model binding که امکان اضاف کردن مدل مورد نظرتون رو به روت رو خواهد داد. همین طور امکان دسته بندی یا گروه بندی middleware ها رو تو نسخه ۵٫۲ دارید. امکان اعتبارسنجی آرایه ها هم جالب بود و کاربردی که یکتا بودن مقادیر یک آرایه رو میشد باهاش بررسی کرد، برای مثال یکتا بودن تمام ایمیلهایی که توی یک آرایه هستن رو میشه با این امکان چک کرد.

امکان رول بک کردن مایگریشن ها به تعداد قدمهای مشخص

بدون شک  این مساله روبرو شدید که بخواید مایگریشنهایی که به واسطه اونها تغییراتی روی دیتابیس اعمال کردید رو برگردونید. اما تا به حال این امکان در دو حالت وجود داشت. یا باید قدم به قدم برگردونید یا تمام مایگریشنها رو یکباره برگردونید. در لاراول ۵٫۳ امکان مشخص کردن تعداد قدمها به وجود اومده. با دستور زیر به آسانی میتوانید به راحتی به روش زیر این کار رو انجام بدید.

 

امکان دسترسی به متغیر حلقه در blade

در نسخه ۵٫۳ لاراول امکان دسترسی به متغیر حلقه به وجود آمده است. برای کنترل براساس شماره حلقه دست ما رو باز خواهد کرد.

واکشی مدل های مورد نیاز برای اجرای عملیات صف بندی شده

لاراول امکان خوبی برای قراردادن عملیات مورد نظر در صف انجام ارائه میکند. برای مثال میتوانید به جای منتظر گذاشتن کاربر برای فرستادن ایمیل خوش آمدگویی، این کار را در صف اجرا قرار دهید و در پس زمینه این کار را انجام دهید. برای این کار یک کلاس با قابلیت صف بندی ایجاد میکنید پارامترهای لازم را میپذیرد. اما تصور کنید که در این مثال ایمیل فرد را به عنوان پارامتر بفرستید و کاربر پیش از رسیدن زمان ارسال متوجه شود ایمیل خود را اشتباه وارد کرده و بخواهد ایمیل خود را تصحیح کند.

امکان شخصی سازی صفحه بندی ساده (Simple Pagination)

صفحه بندی در لاراول خیلی ساده انجام می شود، طوری که کافی است فقط  متد paginate رو صدا بزنید و خروجی را به view بفرستید. در view کافی است که از متد links() استفاده کنید برای نمایش دادن صفحه های اطلاعات. اما این صفحه بندی تا نسخه ۵٫۲ به سختی قابل شخصی سازی بود. اما از پستهای توییتر آقای اوتول Taylor Otwell (@taylorotwell)  امکان این کار در نسخه ۵٫۳ به سادگی فراهم شده است.

امکان فرستادن پارامترهای بیشتر به firstOrCreate

گاهی نیاز می شود که از پارامترهایی برای جستجو استفاده کنید اما اگه اون مدل وجود ندارد . برای مثال فرض کنید میخواهید از گیت هاب OAuth برای ورود استفاده کنید. برای اینکار از ID گیت هاب برای بررسی وجود کاربر استفاده میکنید، اما اگر کاربر جدیدی دارید ثبت میکنید میخواید آواتارش رو هم ذخیره کنید. پیش از این تغییر باید این کار رو میکردید.

$user = User::firstOrNew([‘github_id’, $githubUser->id]);

if (! $user->exists) {
$user->fill([‘avatar’ => $githubUser->avatar])->save();
}

return $user;

اما توی تغییر جدید میتوانید با استفاده از یک خط کد به شکل زیر انجامش بدید:

return User::firstOrCreate([‘github_id’, $githubUser->id], [‘avatar’ => $githubUser->avatar]);

 

تابع کمکی جدید cache

این تابع کمکی به سادگی امکان استفاده از cache را فراهم میکند. سه کارکرد اصلی آن get، put و return هست که به راحتی قابل استفاده خواهد بود.

  • cache(‘abc’, null): در صورت وجود مقدار ارائه شده آن را برمیگرداند و در غیر اینصورت مقدار پیش فرض یعنی null را بازمیگرداند.
  • cache([‘abc’ => ‘def’], ۵): برای مدت زمان ۵ دقیقه مقدار کلید abc را برابر با def قرار میدهد.
  • cache(): نمونه ای از CacheManager بازمیگرداند.

بارگذاری مایگریشنها از مکانهای مختلف

این خصوصیت بیشتر به کار توسعه پکیج ها میاد. موقع اضافه کردن یه پکیج مرحله Publish هم وجود دارد یا اینکه باید مایگریشنها را از پوشه vendor/package/database/migrations به database/migrations کپی کنیم. در لاراول ۵٫۳ با استفاده از متد loadMigrationsFrom(‘آدرس پوشه مایگریشنها’) این نیاز برطرف میشود. و این موضوع وقتی نسخه جدید یک پکیج ارائه میشه نمود بیشتری پیدا میکند، چرا که دیگه نیازی به کپی کردن مایگریشنهای مربوطه وجود نداره. تنها نیازی که هست اجرای فرمان معروف php artisan migrate هست.

بهبود در انتشار عمومی event با استفاده از فیچر جدید Echo

این ویژگی بهبود بسیاری در زمینه انتشار event و نحوه تعامل آن با Pusher در لاراول ایجاد میکند.

 

 

درباره dms-nazila

یک نظر

نظر خود را بیان کنید

Time limit is exhausted. Please reload CAPTCHA.