Laravel یک چارچوب متن باز PHP است که توسط تیلور اوتول، برای توسعه نرمافزارهای وب بر پایه معماری مدل نما کنترل گر (MVC) و بستههای (packages) آمادهٔ چارچوب سیمفونی nv طراحی شدهاست. هرچند سازندهٔ اصلی این فریمورک یعنی تیلو اوتول اعتقاد دارد که لاراول برپایهٔ MVC نیست.
در حال حاضر اکثر شرکتهای ایرانی و حتی بین المللی برای نیروی برنامه نویس بک اند به دنبال استخدام برنامه نویس لاراول هستند. پس اگر میخواهید بدانید علت محبوبیت و موفقیت فریم ورک لاراول چیست واصلا چرا باید آن را انتخاب کنید، در این مقاله کامل به آن می پردازیم با طراحی وب سایت اختصاصی یکتادیجی همراه باشید.
فریم ورک چیست؟
فریم ورک یک چارچوب به حساب میآید که معمولاً برنامه نویسها برای توسعه و طراحی نرم افزار از آن استفاده میکنند. استفاده از فریم ورک به ساده شدن توسعه پردازشها کمک میکند. یکی از دلیلهای این سادگی این موضوع است که فریم ورک از نوشتن مکرر کدهای مشابه جلوگیری خواهد کرد. همچنین باعث ایجاد شیوههای خوب و مناسب و سازگاری در کدها میشود. بنابراین میتوان گفت که فریم ورک، مجموعهای از ابزارها و ماژولهای گوناگون است که میتوانند در پروژههای مختلف مورد استفاده قرار بگیرند.
فریم ورکهای نرم افزاری، زندگی را برای توسعه دهندگان به وسیله کنترل همه یا بخشی از برنامه با یک پلتفرم واحد، سادهتر میکنند. به طور کلی میتوان گفت که توسعه نرم افزار فرایند پیچیدهای به حساب میآید. این کار به وظیفههای زیادی از جمله کدنویسی، طراحی و آزمایش نیاز دارد. برای مثال میتوان به بخش برنامه نویسی اشاره کرد که فقط برای کدنویسی آن، برنامه نویسها باید به ساختار نحوی (سینتکس)، اعلانها، «جمعآوری زباله» (Garbage Collection)، عبارتها، استثناها و موارد دیگر توجه کنند.
فریم ورک لاراول چیست؟
زمانی که در مورد فریم ورکهای توسعه وب اپلیکیشن صحبت میشود، همیشه نام لاراول به میان میآید. از لاراول میتوان به عنوان محبوبترین فریم ورک زبان برنامه نویسی PHP یاد کرد. این فریم ورک توانسته است در زمانی کوتاه، به اولین گزینهی توسعه دهندگان برای توسعه برنامههای پیچیده تحت وب تبدیل شود.زمانی که در مورد فریم ورکهای توسعه وب اپلیکیشن صحبت میشود، همیشه نام لاراول به میان میآید. از لاراول میتوان به عنوان محبوبترین فریم ورک زبان برنامه نویسی PHP یاد کرد. این فریم ورک توانسته است در زمانی کوتاه، به اولین گزینهی توسعه دهندگان برای توسعه برنامههای پیچیده تحت وب تبدیل شود.
این فریم ورک در بین سایر فریم ورکهای PHP از امنیت و سرعت توسعهی بیشتری برخوردار است و از طریق آن شما قادر خواهید بود بدون اینکه تغییری در کدهای اصلی ایجاد کنید، عملکرد بسیاری از بخشها را تغییر دهید. لاراول کتابخانههای بسیار متنوعی دارد و از اغلب کتابخانههای فریم ورک سیمفونی نیز استفاده میکند. همچنین این فریم ورک سرویسهای مختلفی را برای برنامه نویسان ارائه میدهد. به عنوان مثال سرویس هایی همچون تأیید هویت، دسترسیهای کاربران، کنسول Artisan، پرداخت و صورتحساب، کش (Cache) و … که تنها بخش کوچکی از سرویس هایی است که این فریم ورک در اختیار برنامه نویسان قرار میدهد.
تاریخچه لاراول
پیدایش لاراول به این صورت بود که Taylor Otwell قصد داشت فریم ورکی ایجاد کند که بر پایه CodeIgniter باشد، در حالی که قابلیتهای پیشرفتهتری نسبت به آن ارائه دهد. زیرا با رشد CodeIgniter مشکلاتی برای برنامه نویسان و طراحان وب به وجود آمده بود.
لاراول 1
تیلور اوتول در سال ۲۰۱۱ اولین نسخه از لاراول را منتشر کرد که مکانیزمهای model، session، view و مسیریابی را ارائه میداد، ولی این نسخه در نبود کنترلر حالت mvc واقعی را از دست داده بود.
لاراول 2
در سپتامبر ۲۰۱۱ اوتول با انجام بهینه سازیهای متعدد لاراول 2 را منتشر کرد. از مهمترین تغییرات نسخه ۲ وجود کنترلرها بود که باعث میشد لاراول رسماً به عنوان یک فریم ورک MVC شناخته شود. همچنین سیستم قالب بندی blade نیز در نسخه دوم به این فریم ورک اضافه شد.
لاراول 3
در فوریه سال ۲۰۱۲ لاراول 3 با تغییرات جدیدی وارد عرصه شد. انتشار لاراول 3 با معرفی سایت این فریم ورک با آدرس https://laravel.com که امکان استفاده از یک داکیومنت قوی را برای کاربرانش فراهم میکرد، همراه بود. از مهمترین قابلیتهای لاراول 3 استفاده از خط فرمان CLI به نام artisan بود. پشتیبانی داخلی از مدیریت سیستم بانک اطلاعاتی، migrationها، لایههای بانک اطلاعاتی، پشتیبانی از رویدادها، همگام سازی لاراول با unit testing و همچنین سیستم پکیجینگ یا bundle از دیگر قابلیتهای مهم لاراول در نسخه سوم لاراول بود که محبوبیت آن را فزونی بخشید.
لاراول 4
پس از موفقیت هایی که این فریم ورک در نسخه سوم به دست آورد، در سال ۲۰۱۳ چهارمین نسخه آن بر پایه کدهای Illuminate منتشر شد. این نسخه از لاراول به صورت کامل مورد بازنویسی قرار گرفت و با پشتیبانی از سیستم Composer گام بلندی در جهت پیشرفت و سبقت از سایر رقیبان خود برداشت. به دلیل استفاده از این ویژگی امکان استفاده از پکیجها و کتابخانههای زیادی که توسط سایر برنامه نویسان PHP توسعه داده شده بود، برای کاربران امکان پذیر شد. همچنین امکاناتی مانند ارسال ایمیل به روشهای مختلف و پشتیبانی از حذف شدن با تأخیر رکوردهای بانک اطلاعاتی (Soft Deletion) از دیگر امکانات نسخه 4 لاراول بود.
لاراول 5
سیر تکامل لاراول ادامه داشت تا اینکه در فوریه سال ۲۰۱۵ نسخه پنجم لاراول با تغییر در نسخه 4.3 منتشر شد. قابلیتهای مهم و ویژهای به این نسخه اضافه شده بود. برنامه ریزی برای اجرای وظایف از طریق بستهای به نام scheduler، بهینه سازی بستههای assets از طریق Elixir، ساده شدن عملیات احراز هویت از طریق بسته Socialite، همچنین ارائه ساختار درختی برای توسعه برنامه از قابلیتهای لاراول در نسخه 5 بود.
لاراول 6
پس از مدتی لاراول نسخه 6 خود را منتشر کرد، که در این نسخه بسیاری از نقصهای نسخه 5 را برطرف کرد و ویژگیهای جدیدی که قطعا مورد انتظار طرفدارانش بود را فراهم ساخت، یکی از این ویژگیها، استفاده از Laravel Vapor بود.
لاراول 7
نسخه 7 لاراول همراه با انتشارش، ویژگیهای جدید بسیاری با خود داشته است. همچنین این نسخه تغییرات زیادی داشته است :
1-سیستم احراز هویت Laravel Airlock
2- Custom Eloquent Casts
3-کامپوننت Blade و بهبود آن
4-HTTP Client
لاراول 8
با توجه به اعلام آقای تیلور آتول، از ورژن هفت به بعد لاراول از روش ورژنینگ (versioning) جدیدی به نام semantic versioning استفاه میکند و قرار است هر شش ماه یک بار تغییرات عمدهای بر روی لاراول منتشر شوند. نسخه ٨ لاراول در ٨ سپتامبر ٢٠٢٠ منتشر شد.در laravel8 ساختار کلی لاراول چندان تفاوتی نکرده اما چند تغییر بسیار مهم در لاراول وجود دارد. از جمله این که seeder ها و factory ها دارای namespace خواهند بود. و این که seeder ها به جای دایرکتوری seeds در دیرکتوری seeders قرار خواهند گرفت.
لاراول 9
در این نسخه قابلیتهای زیادی افزوده شده است. البته باید بدانید که برای استفاده از این نسخه از Laravel باید از PHP نسخه 8 به بالا استفاده کنید. از جمله قابلیتهای جدیدی که به این نسخه اضافه شده است شامل یکپارچگی Symphony Mailer، Flysystem 3.0، بهبود در مدلهای دیتابیس در بخش accessor یا mutator و قابلیتهای دیگری که در پست تغییرات جدید لاراول ۹ به صورت کامل به آن پرداخته ایم.
لاراول 10
آخرین نسخه حال حاضر Laravel، نسخه 10 میباشد که نسبت به نسخه قبلی آن، تغییرات و بهبودهای چشمگیری پیدا کرده است.در این پست به طور کامل به تغییرات این نسخه پرداخته ایم.
مزایا و معایب فریم ورک لاراول چیست ؟
از Laravel تحت عنوان هایی مانند جادوگر دنیای وب هم یاد میشود. زیرا بسیاری بر این اعتقادند که کارهایی که این فریم ورک در فرآیند توسعه وب اپلیکیشن انجام میدهد، جادویی میباشند.
در لاراول با کمترین میزان کدنویسی و با وارد کردن دستوراتی کوتاه، کارهای بزرگی را میتوان انجام داد. از جمله میتوان به سیستم پیاده سازی فرمهای عضویت و ورود در Laravel اشاره کرد. این بخش در لاراول تنها با وارد کردن یک دستور پیاده سازی میشود. همچنین برای این که فریم ورک Laravel پاسخگوی نیازهای مختلف ما باشد.
تنها بعضی از مزایای لاراول :
- استفاده از معماری MVC
- متن باز (Open Source) بودن
- آسانی در یادگیری
- افزایش سرعت توسعه پروژه
- امنیت بالا
- بروز رسانی آسان
- آسانتر کردن اعمالی همچون احراز هویت (Authentication) ، مسیریابی (Routing) و Cache کردن
- استفاده از Remote Component
- افزایش چشمگیر سرعت کد نویسی
- توسعه برنامه بدون به خطر افتادن قابلیتها و کدهای قبلی برنامه
- محدود کردن Eloquent با استفاده از دستوراتی ساده
- قابلیت اجرای آزمایشهای متعدد مانند Unit Testing با استفاده از دستوراتی ساده
- قابلیت دسترسی آسان به Database توسط Migration ها
- خط فرمان فوق العاده Artisan
- قابلیت ایجاد Packageهای مختلف
- استفاده از خصوصیت auto-loading
- استفاده از ابزار ORM
- استفاده کردن از موتور Template Blade
در ادامه به تشریح برخی از ویژگی های لاراول می پردازیم :
خط فرمان جذاب آرتیسان
به خط فرمان لاراول (Artisan CLI) گفته میشود؛ که در لاراول ۳ با محدودیتهایی معرفی شد. لاراول بعدها به یک معماری بر پایه کامپوزر مهاجرت کرد که اجازه میداد آرتیسان با اجزا فریم ورک سیمفونی ترکیب شود، در نتیجه در لاراول ۴ ویژگیهای دیگر آرتیسان اضافه شد. Artisan میتواند به طور اتوماتیک برای شما Controller، Migration به همراه توابع اصلی، Model و… بسازد. همچنین Artisan میتواند یک سرور مجازی برای تست لاراول راه اندازی کند یا دیتابیسهای شما را با استفاده از Migration ها تغییر دهد.
مقیاس پذیری آسان لاراول
فریمورک لاراول در سطح بالایی مقیاسپذیر است. با پشتیبانی و یکپارچهسازی سریع و سیستمهای کش توزیع شده، اپلیکیشنهای لاراول امکان پاسخگویی به میلیونها درخواست را در یک ماه دارند. همچنین، فریمورک لاراول پلتفرم استقرار «فاقد سروری» (Serverless) به نام «Vapor» را ارائه میدهد که مبتنی بر «خدمات وب آمازون» (Amazon Web Services | AWS) است و سطح بالایی از مقیاسپذیری را فراهم میکند.
پشتیبانی از معماری MVC
Laravel از الگوی معماری MVC پشتیبانی میکند که باعث میشود منطق کسب و کار و لایههای مختلف از هم جدا شود. الگوی MVC لاراول دارای توابع داخلی زیادی است. این الگو عملکرد برنامه را بهبود میبخشد و امنیت و همچنین مقیاس پذیری را افزایش میدهد.
امنیت
فریمورک لاراول امنیت وب بسیار قوی را ارائه میدهد. لاراول از مکانیسم رمز عبور hashed استفاده میکند. بنابراین رمز عبور هرگز به عنوان متن رمز نشده در دیتابیس ذخیره نمیشود. همچنین از “الگوریتم Bcrypt Hashing” برای تولید رمز عبور رمزگذاری شده استفاده میکند. علاوه بر این، این چارچوب توسعه وب PHP از عبارات آماده شده SQL استفاده میکند که از حملات Injection SQL جلوگیری میکند.
مزیت قابلیت Sync شدن با ایمیلها در لاراول
تصور برنامهای امروزی بدون قابلیت فرستادن یا دریافت Email ممکن نیست. لاراول با تمام سرویسهای دریافت و ارسال Email، به آسانی Sync میشود.
لاراول بهغیر از توابع SMTP و PHP mail، از بسیاری از سرویسهای ایمیل رسانی دیگر مانند Mailgun Mandrill ، SparkPost ، Amazon SES ، SendMail و غیره پشتیبانی میکند. همچنین میتوانید با استفاده از Email ،Nexmoها را از طریق Slack یا SMS ارسال کنید.
اعتبار سنجی با Validation
با توجه به اینکه نوشتن دستی همه کدهای اعتبارسنجی (Validation) گاهی دشوار و خسته کننده است فریم ورک لاراول این مشکل را حل کرده است. لاراول دارای یک سیستم اعتبارسنجی قوی میباشد که عملکرد آن به این صورت است که با مشخص کردن هر فیلد از فرم, نوع و کارکرد اعتبارسنجی مورد نظر قوانین مربوط به آن تبیین خواهد شد و بعد از آن همه اعتبارسنجیها بهصورت خودکار انجام میشود.
ابزار ORM در فریم ورک لاراول چیست؟
یکی از بهترین ابزارهایی که در فریم ورک لاراول استفاده شده است و میتوان از آن به عنوان یکی از مهمترین مزیتهای استفاده از این فریم ورک یاد کرد این است که، این فریم ورک از ابزار ORM برای برقرار کردن پلی ارتباطی بین بانکهای اطلاعاتی (Database) و اجرای Query استفاده میکند، این ویژگی به شما امکانات بسیار زیادی که یکی از مهمترین آنها ایجاد برخی از محدودیتها بین اشیا ساخته شده توسط شما و جدول اطلاعاتی یا Database میباشد را میدهد. بهطور مثال فرض کنید یک جدول در Database بهنام Posts دارید و برای ارتباط با آن, یک Model بهنام Posts ایجاد کردهاید. حال اگر بخواهید تمام دادههای جدول Posts را بدون استفاده از ORM و Eloquent دریافت کنید، مجبورید یک Query بنویسید. اما با استفاده از Eloquent، تنها کافیست از دستور ()Posts::all استفاده کنید.
معایب لاراول
- Laravel یک چارچوب سبک وزن است، بنابراین در مقایسه با Django و Ruby از پشتیبانی داخلی کمتری برخوردار است. این مشکل با ادغام ابزارهای خارجی قابل حل است اما برای وبسایتهای بزرگ یا سفارشی، کارها میتوانند خستهکننده و پیچیده شوند.
- همه پرونده های اصلی لاراول در فضای نام Larara قرار دارند در حالی که پروندههای اصلی دیگر از فضای نام اصلی (\) استفاده نمیکنند. این میتواند توسعهی کلاسهای طولانی را کمی سختتر کند. این یک مساله بزرگ نیست و بسیاری از توسعهدهندگان نگران این موضوع نخواهند بود.
- Laravel به عنوان یک چارچوب جدید، به اندازه بسیاری از چارچوب های دیگر بالغ نیست.
- توسعه دهندگان آماتور هنگام گسترش کدها و کلاسها با مشکلاتی روبرو میشوند.
- برای سیستمهای قدیمی، مهاجرت به لاراول کار سادهای نیست.
- بسیاری از روش های موجود در روند مسیریابی معکوس پیچیده هستند.
هاست لاراول
انتخاب یک هاست مناسب دغدغه های امروزی برنامه نویسان لاراول است. یک هاست مناسب است اگر بر کیفیت، سرعت و امنیت سایت تاثیر به خصوصی داشته باشد. هاست لاراولی لینوکس ایران طبق تجارب برنامه نویسان خوب کشور مناسب سایت های لاراولی می باشد.
جمع بندی
لاراول یکی از پرکاربردترین فریموکهای PHP به حساب میآید که توسعه اپلیکیشنهای تحت وب را میتوان با استفاده از آن به سادگی انجام داد. این فریمورک بیشتر در زمینه بکاند وب سایت کاربرد دارد و یادگیری آن ساده است. با استفاده از فریمورک لاراول دیگر نیازی نیست که کدهای اپلیکیشن را از پایهایترین مفاهیم کدنویسی کرد و از ابزارهای مختلف لاراول برای توسعه استفاده میشود.
در مطلب «Laravel چیست ؟ هر آنچه باید بدانید» سعی شد به طور جامع به همه جوانب این فریمورک از جمله ویژگیها، مزایا، کاربردها و روشهای یادگیری آن پرداخت و علاقهمندان و دانشجویان را تا حد زیادی با این فریمورک بسیار کاربردی و محبوب آشنا کرد.