لاراول 8 آخرین نسخه از این ابزار محبوب توسعه وب است که به توسعهدهندگان اجازه میدهد در پروژههایشان از آن استفاده کنند. این دارای یک ابزار داخلی به نام Artisan است که به شما در ایجاد پیچیدهترین مدلها کمک میکند. بسیاری ویژگیهای جدید در این نسخه وجود دارد از جمله یک مدل جدید مبتنی بر وب و یک ابزار آسان برای استفاده که میتواند به منظور ایجاد پایگاه داده مورد استفاده قرار گیرد.
با اینکه مدتی از زمان انتشار لاراول 8 میگذرد، اما من معتقدم که ویژگیهای آن باید دوباره مرور شود؛ زیرا این فریمورک همیشه در زمینه توسعه وب برجسته بوده است. لاراول محبوبترین فریمورک PHP است و خود PHP هم یکی از زبانهای برنامهنویسی پیشگام به حساب میآید.
لاراول با داشتن 64.6 هزار ستاره یکی از پرطرفدارترین ریپازیتوریها را در گیت هاب دارد. به خصوص پس از انتشار ویژگیهایی مانند Artisan (رابط خط فرمان)، پشتیبانی از سیستم پایگاه داده، migrationها و پکیجهای نرمافزاری مختلف محبوبیت بیشتری نیز پیدا کرده است.
برخی از وب سایتهای محبوب که با این فریمورک ساخته شدهاند، عبارتند از: BBC ،OnePlus ، 9GAG و موارد دیگر. به همین جهت لاراول برای توسعه انواع برنامههای کاربردی تحت وب مانند استارتاپها و نمونههای سطح سازمانی مناسب است.
همچنین با وجود ویژگیهای داخلی بسیار زیادی که دارد (دارای یک سری پکیجهای رسمی است که امکانات زیادی را ارائه میدهند)، به توسعهدهندگان اجازه میدهد با خیال راحت کار کنند. قبل از اینکه ویژگیهای نسخه جدید را بررسی کنیم، بیایید نگاهی به قابلیتهای اصلی این فریمورک داشته باشیم.
برای یادگیری بیشتر میتوانید این دوره مفید و رایگان را در وب سایت راکت دنبال کنید.
چه چیزی لاراول را تا به امروز خاص کرده است؟
موتور قالب
لاراول به دلیل داشتن الگوهای سبک داخلی که میتواند برای ایجاد طرح بندیهای شگفت انگیز همراه با تولید محتوای پویا مورد استفاده قرار گیرد، بسیار شناخته شده است. به علاوه ویجتهای متعددی را به وسیله کدهای CSS و JS با ساختارهای قوی ارائه میدهد. قالبهای لاراول به گونهای طراحی شدهاند که میتوانید سادهترین و پیچیدهترین طرح بندیها را با بخشهای متمایز ایجاد کنید.
پشتیبانی از معماری MVC
لاراول از الگوی معماری MVC پشتیبانی به عمل میآورد و اطمینان حاصل میکند که لایههای منطقی و نمایشی از هم مجزا هستند. الگوی MVC لاراول قادر به تقسیم نقشها در پروژه مانند جداسازی مسئولیت به همراه بسیاری از توابع داخلی است که به بهبود عملکرد برنامه و افزایش امنیت و مقیاس پذیری کمک زیادی میکند.
ORM Eloquent (نگاشت رابطهای شی)
دلایل متعددی وجود دارد که چرا باید از لاراول استفاده کرد. یکی از آنها سیستم نگاشت رابطهای شی (ORM) است که از یک پیاده سازی ساده PHP Active Record تشکیل شده است. این قابلیت به توسعهدهندگان وب اجازه میدهد تا به جای نوشتن کد SQL، درخواستهای پایگاه داده را با سینتکس PHP بنویسند. ORM به طور قابل توجهی سریعتر از سایر فریمورکهای PHP عمل میکند.
امنیت
لاراول امنیت بالایی برای برنامههای وب ارائه میدهد. همچنین از مکانیزمهای قدرتمند هش استفاده میکند که با توجه به آن رمز عبور هرگز به عنوان یک متن ساده در پایگاه داده ذخیره نمیشود. علاوه بر این از تابع هش Bcrypt برای ایجاد پسورد رمزگذاری شده بهره میگیرد. به همین جهت از دستورات آماده SQL به منظور جلوگیری از حملات تزریق SQL، استفاده مینماید.
Artisan
لاراول یک ابزار خط فرمان داخلی به نام Artisan ارائه میدهد که به شما کمک میکند اکثر کارهای روزمره برنامهنویسی را خودکار کنید. از این ابزار میتوان برای ایجاد ساختار پایگاه داده و مدیریت migrationها استفاده کرد، بنابراین یک سیستم پایگاه داده بسیار ساده دارد. علاوه بر این Artisan حتی به توسعهدهندگان لاراول کمک میکند تا دستورات خود را ایجاد کرده و در صورت لزوم از آنها استفاده کنند.
کتابخانهها و ماژولار بودن
لاراول کتابخانههای شیگرا و ماژولار از پیش نصب شدهای دارد که در بسیاری از فریمورکهای PHP دیگر موجود نیستند. به عنوان مثال کتابخانه احراز هویت با ویژگیهایی مانند بررسی کاربران فعال، بازیابی گذرواژه، هش Bcrypt، محافظت از CSRF (جعل درخواست بین سایت)، رمزنگاری پیشرفته و موارد دیگر.
ویژگیهای جدید در لاراول 8
لاراول 8 آخرین نسخه از این فریمورک است که در 8 سپتامبر 2020 منتشر شد. این نسخه با ویژگیهای جدید شگفت انگیزی همراه است و حتی راهنمای ارتقا نیز دارد. تیلور اوتول - خالق لاراول - برخی از این ویژگیهای جدید را در کنفرانس LARACON خود اعلام کرد.
در اینجا خلاصهای از برخی قابلیتهای جدید اعلام شده در برنامه آمده است. بیایید نگاهی به آنها بیندازیم:
دایرکتوری app/Models
لاراول 8 اکنون به جای کلاس مدل در نسخه اصلی برنامه، با یک دایرکتوری app/models همراه است. طبق نظرسنجی انجام شده توسط تیلور، بیش از 80 درصد توسعهدهندگان یک دایرکتوری app/models برای خود ایجاد کردهاند.
اگر از هر یک از دستورات artisan استفاده کنید مانند php artisan make:model که میتواند برای شما یک کلاس مدل ایجاد کند، در داخل پوشه جدید app/models یک مدل جدید ایجاد خواهد کرد.
با این حال اگر میخواهید مدلهای خود را در دایرکتوری app نگه دارید و پوشه مدلهای جدید را حذف کنید، دستورات تولید شده با آن مطابقت دارد و کلاسهای مدل را در دایرکتوری app ایجاد میکند.
صفحه فرود جدید
صفحه اصلی که در هنگام اجرا مشاهده میکنید، بازسازی شده و در حال حاضر با TailwindCSS ساخته شده است و همچنین در نسخههای روشن/تاریک ارائه میشود. همچنین لینکهایی به چندین شبکه اجتماعی و محصولات مختلف SaaS از لاراول در این صفحه وجود دارد. اگر مایل به خرید محصولات جدید هستید، لینکی به فروشگاه جدید لاراول نیز موجود است.
حذف پیشوند فضای نام کنترلرها
در نسخههای قبلی لاراول، یک ویژگی در RouteServiceProvider.php به نام namespace$ وجود داشت که برای پیشوند خودکار فضای نام کنترلرها (در مسیر App\Http\Controllers) استفاده میشد.
اگر از سینتکس قابل فراخوانی در فایل مسیرهای web.php خود استفاده میکردید، لاراول فضاهای نام شما را double میکرد. خوشبختانه این ویژگی از لاراول 8 حذف شده است، بنابراین اکنون میتوانید کلاسهای کنترلر خود را بدون مشکل در فایل مسیرهای خود ایمپورت کنید.
بهبود حافظه کش مسیر
امیدوارم قبلا از کش مسیر در برنامه خود استفاده کرده باشید (با اجرای دستورphp artisan route:cache یک فایل PHP با آرایهای که شامل تمام مسیرهای موجود است ایجاد میشود، سپس لاراول از آن برای مسیریابی استفاده میکند؛ زیرا سریعتر از تجزیه فایل مسیرها در هر درخواست است).
با این حال اگر قبلا در مسیرهایتان closure وجود داشت یا حتی اگر پکیجی یک مسیر را با closure ثبت میکرد که باعث میشد کش مسیر خراب شود، اکنون در لاراول 8 از کش مسیر برای closure پشتیبانی میشود.
خصوصیات کامپوننت Blade
اگر میخواستید یک کامپوننت Blade (به عنوان مثال یک کامپوننت به نام DangerButton که یک کامپوننت دیگر به نام Button را گسترش میدهد) در لاراول 7 توسعه دهید، button فرزند $attributes را به آن منتقل نمیکرد. اما اکنون در لاراول 8، همه کامپوننتهای فرزند دارای $attributes در دسترس هستند که ساخت کامپوننتهای توسعه یافته را آسانتر میکند.
سینتکس تمیز برای شنوندگان رویداد مبتنی بر Closure
در نسخههای قبلی لاراول هنگام ثبت یک شنونده رویداد مبتنی بر closure، ابتدا باید کلاس رویداد را تعریف میکردید، سپس closure را ثبت کرده و احتمالا کلاس رویداد را برای آن مینوشتید. به عنوان مثال:
اما در لاراول 8 میتوانید از اولین تعریف کلاس رویداد صرف نظر کنید؛ زیرا فریمورک قادر است آن را از نوع آرگومان اشاره شده در نظر بگیرد. به عنوان مثال:
صف بندی شنوندگان رویداد ناشناس
در لاراول 8 میتوانید از طریق فراخوانیهای رویداد مدل خود، یک فرایند مبتنی بر closure را به صف ارسال کنید. به عنوان مثال:
در نسخههای قبلی لاراول این امکان وجود نداشت تا زمانی که یک کلاس رویداد و شنونده رویداد را با استفاده از ویژگی ShouldQueue ایجاد میکردید. این ویژگی جدید روند را سریعتر میکند و در واقع اولین تابع فضای نام را در مسیر Illuminate\Events\queueable معرفی مینماید.
Mode Maintenance: دسترسی محرمانه
اگر از دستورات artisan down / artisan up برای قرار دادن سایت خود در حالت تعمیر و نگهداری استفاده میکنید، اما همچنان میخواهید به برخی افراد (مثلا خودتان یا سایر توسعهدهندگان) دسترسی داشته باشید، تنها راه ممکن استفاده از لیست سفید IP است.
اما اگر بخواهید به افراد زیادی دسترسی دهید یا آدرس IP پویایی داشته باشید که به طور مرتب تغییر میکند، این قابلیت به خوبی کار نخواهد کرد. در لاراول 8 وقتی سایت خود را در حالت تعمیر و نگهداری قرار میدهید، اکنون میتوانید از فلگ "secret" استفاده کنید. به عنوان مثال:
مقدار فلگ secret زمانی که سایت شما در حالت maintenance است به یک مسیر تبدیل میشود. اگر میخواهید به آن بروید، فریمورک یک کوکی تنظیم میکند که به برنامه شما دستور میدهد هنگام دسترسی به آن، حالت maintenance را نادیده بگیرد. این کار چندین ساعت طول میکشد و شما را به صفحه اصلی برنامه هدایت میکند، سپس میتوانید آن را به عنوان یک وب سایت معمولی مشاهده کنید.
بهره گیری از متد backoff به منظور قطع فرایندها
اکنون میتوانید یک متد ()backoff به کلاسهای خود اضافه کنید که آرایهای از اعداد integer را برای تصمیم گیری در مورد زمان انتظار قابل قبول بین تلاشهای فرایند در صورت عدم موفقیت برمیگرداند. به عنوان مثال:
در قطعه کد بالا اگر فرایند در اولین تلاش خود شکست بخورد، 1 ثانیه قبل از تلاش مجدد منتظر میماند. اگر دوباره شکست بخورد، 5 ثانیه صبر میکند تا دوباره تلاش کند. به همین ترتیب قبل از تلاش مجدد این بار 10 ثانیه صبر میکند. وقتی با یک API با نرخ محدود کار میکنید تا هر زمان که فرایند شکست بخورد، هر بار انتظار را افزایش میدهد که میتواند خیلی مفید باشد.
جمعبندی
چندین ویژگی دیگر وجود دارد که تیلور و تیمش در حال کار بر روی آنها هستند. اگرچه مدتی از زمان عرضه نسخه 8 میگذرد، اما مهم است که ویژگیهای اصلی آن باز هم مرور شود.
میتوانید صحبتهای تیلور را در کنفرانسهایش دنبال کنید تا از قابلیتهای جدید و آنچه در جریان است مطلع شوید. اگر هر یک از این موارد برای شما نامفهوم است، در بخش نظرات زیر اعلام کنید یا اینکه میتوانید از یک توسعهدهنده لاراول کمک بگیرید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید