فصل ۱- چرا لاراول (سری آموزش رایگان لاراول)

06 آبان 1397
درسنامه درس 1 از سری لاراول
1

بدلیل منابع فارسی کم و گاها ناقص اینبار با دوره‌ی مجموعه‌ی آموزش کامل ۰ تا ۱۰۰ فریم‌ورک حرفه‌ای لاراول در خدمت شما عزیزان هستیم. این دوره از آموزش‌ها مطابق با آخرین نسخه‌ی لاراول ۵.۴ می‌باشد. امیدواریم با همراهی و همکاری شما عزیزان بتوانیم این مجموعه آموزشی را در صحت محتوا به همراه ارائه‌ی مثال‌های کاربردی به اتمام برسانیم. با اولین فصل از این مجموعه شروع می‌کنیم:

دیگر زمان کدنویسی‌های وب سایت‌های پویا از ۰ تا ۱۰۰ به اتمام رسیده است. یا تنها برای زمانیکه یک تیم بسیار قدرتمند و بزرگ وجود داشته باشد این عمل مقرون به صرفه می‌باشد. امروزه برنامه نویسان حرفه‌ای گاها به فکر استفاده از فریم‌ورک‌هایی متناسب با نوع فعالیت خود هستند. بدین‌معنی که آنها تمایل دارند از ساختار منظم و قانون‌مند کامپوننت‌ها، کتابخانه‌ها و توابع به سادگی هرچه تمام تر استفاده کنند. حال شاید این سوال برای شما بوجود بیاید که چرا فریم‌ورک (FrameWork)؟ یا چرا لاراول (Laravel)؟ در ادامه‌ی به توضیح مفصل این موضوع می‌پردازیم:

چرا فریم‌ورک؟

انتخاب فریم ورکبه این موضوع تا به حال توجه کرده‌اید که چرا کامپوننت‌‌ها یا بسته‌های نصبی برخی از توسعه‌دهندگان PHP مفید می‌باشد؟ خب مشخصه که با این پکیج‌ها و بسته‌های نصبی نگهداری از سرویس‌ها و نحو‌ه‌ی کدنویسی ما بسیار ساده خواهد شد. چون شما به جای نوشتن توابع بدیهی فقط کافی‌ست از آنها استفاده کرده و نرم‌افزار خود را توسعه دهید. البته لازم به ذکر است که هر بسته نصبی یا کامپوننتی معتبر نیست. این پیشنهاد را از بنده داشته باشید که استفاده از کامپوننت‌ها تنها و تنها به حمایت‌کننده یا به اصطلاح Supporter آن کامپوننت و یا پکیج بستگی دارد.

حال فرض کنید که شما نرم‌افزاری را بدون استفاده از فریم‌ورک‌ها ایجاد می‌کنید. از کجا شروع خواهید کرد؟ بسیار خب، احتمالا در ابتدا باید تمام درخواست‌های HTTP‌ را مسیردهی کنید سپس نیاز دارید که تمامی کتابخانه‌های Request (درخواست) و Response (پاسخ) را کدنویسی کرده و آنها را در دسترس قرار دهید. ساخت یک روتر (Router)، وای خدای من چقدر سخت! باید یک روتر برای نرم‌افزار خود بنوسید و تنظیمات آن را مطابق با کتابخانه‌ای که خودتان ایجاد کرده‌اید، تهیه کنید. حال این سوال برای شما پیش می‌آید که از چه سینتکس و ساختاری برای کتابخانه‌های روتر استفاده کنید؟ چه ساختاری برای روتر خود تعیین خواهید کرد؟ چگونه کنترلرهای خود را ایجاد می‌کنید؟ چطور تمامی صفحات را بارگذاری خواهید کرد؟ خب شاید سریعا پاسخ بدهید:‌ با استفاده از تزریق وابستگی‌ها مبحث کنترلرها را بهینه می‌کنم! اما به راستی این کارها چقدر زمان می‌برد؟ اصلا فرض کنیم شما توسعه‌دهنده‌ی بسیار قدری هستید و این سوال‌ها برایتان پوزخندی بیش به ارمغان نمی‌اورد! اما یک درصد فکر کنید شما در یک کار گروهی شرکت کرده‌اید و مدیریت یک پروژه در اختیار شماست آیا هر آنچه در ذهن شما می‌گذرد نیز در ذهن سایر اعضای تیم خواهد گذشت؟! آیا مدت زمانی که بخواهید به آنها آموزش دهید که چگونه ساختار قانون مند ذهن شمارا اجرا کنند، در نظر گرفته‌اید؟ آیا به این فکر کرده‌اید که ساخت یک فریم‌ورک بومی که زاییده‌ی افکار حرفه‌ای برنامه‌نویسی شماست چقدر زمان می‌برد؟

بسیار خب پاسخ به سوال‌های فوق را خودتان بدهید و ما به ادامه‌ی توضیحات این مقاله می‌پردازیم.

با یک تیر ۱۰۰ نشان بزنید!

انعطاف پذیر بودنحال به این نکته توجه کنید که شما پس از بهره‌مندی از فریم‌ورک دیگر به سوال‌های فوق نباید جواب دهید بلکه سوالات شما نمودی بهتر پیدا می‌کنند. مثلا:‌ از چه کامپوننتی برای ارتباط با پایگاه داده استفاده کنم؟ از چه کامپوننتی برای نمایشگر خروجی خود استفاده کنم؟ و ... . شما به مراتب سازگاری مناسب‌تری با فریم ورک خود ایجاد خواهید کرد. علاوه بر این، فریم‌ورک‌ها قوانین و قواعد خاصی را برای شما وضع می‌کنند تا خطای کدزنی و توسعه یک اپلیکیشن را کاهش داده و انسجام تیمی شما را حفظ کنند. بنابراین سازگاری تیمی شما نیز افزایش پیدا می‌کند چون وقتی شما یک پروژه لاراول ایجاد کردید و مثلا بحث روتینگ یا مسیردهی را کاملا متوجه شدید دیگر برای شما فرقی نمی‌کند که عنوان پروژه چیست! بلکه آنچه برای شما حائز اهمیت است سینتکس و ساختار مسیردهی در پروژه‌هاست که یکسان می‌باشد. این یعنی با یک تیر ۱۰۰ نشان زدن!

برای هر تغییری انعطاف‌پذیر باشید!

سازگاری بالاگاهی شما در یک تیم و مجموعه‌ی برنامه‌نویسی مشغول به کار هستید، مدیر پروژه از شما درخواست می‌کند که مبحث کنترلر صفحه‌ی لاگین را رها کرده و بخش ویو و کنترلر صفحه‌ی محصولات که همکارتان تاکنون روی آن کار می‌کرده، ادامه و توسعه دهید. بسیار عالیه! شما یک توسعه‌دهنده‌ی انعطاف‌پذیر شدید زیرا به راحتی هر چه تمام تر می‌توانید ادامه‌ی کدهای همکارتان را نوشته و به توسعه نرم‌افزار بپردازید.

دلایلی که برای شما عزیزان ارائه کردیم مستند و بر اساس تجربه‌ی کاری حاصل شده است لذا از توضیح بیش از اندازه‌ی فواید استفاده از فریم‌ورک پرهیز کرده و در ادامه‌ی مقاله به صورت تیتروار برخی از اساسی‌ترین دلایل استفاده از فریم‌ورک‌ها را شرح خواهیم داد:

  • افزایش سرعت توسعه نرم‌افزارها
  • تولید کد‌ها و برنامه‌های سازماندهی شده جهت استفاده مجدد و نگه‌داری
  • افزایش امنیت وب سایت برای خطاهایی سطح پایین
  • استفاده از ساختار MVC (مخفف کلمات Model-View-Controller) رجوع شود به مقاله‌ی آموزش MVC در PHP
  • استفاده از ابزار مدرن برنامه‌نویسی تحت عنوان برنامه‌نویسی شیء گرایی (Object-Oriented-Programming)

و اما به این سوال هنوز پاسخ نداده‌ایم که از بین حدود ۱۰ الی ۱۵ فریم‌ورک PHP چرا لاراول را انتخاب کرده‌ایم؟ بسیار عالی، پاسخ به این سوال تنها زمانی مشخص خواهد شد که شما ویژگی‌های کلیدی این فریم‌ورک را مطالعه کنید. البته در این مقاله از مقایسه‌ی فریم‌ورک‌های PHP خودداری می‌کنیم چون این مقایسه هیچگاه نتیجه‌ی دلچسبی نخواهد داشت.

ویژگی‌های لاراول Laravel

بنده بر اساس تجربیات کاری با چندین فریم‌ورک و البته با مطالعه‌ی چند مقاله‌ی قدرتمند به این نتایج دست پیدا کردم که با شما عزیزان به اشتراک می‌گذارم:

  • هسته‌ی توسعه‌پذیر و سریع
  • مسیردهی (routing) ساده و تمیز
  • سیستم تایید هویت کاربری خودکار (Authentication)
  • سیستم ACL حرفه‌ای و پیشرفته
  • استفاده از مفهومی به نام Eloquent برای برقراری ارتباط بین مدل و پایگاه داده
  • دارای کلاس‌ها و توابع بسیار متنوع
  • شیءگرایی بسیار حرفه‌ای و منسجم
  • پشتیبانی همزمان از چندین بانک اطلاعاتی (SQL Server, MySQL, PostgerSQL, SQLight, Oracle)
  • استفاده از موتور قالب Blade جهت طراحی بسیار ساده‌ی View
  • رابط و ORM بسیار ساده
  • نصب و اجرای کاملا ساده با استفاده از Composer
  • پشتیبانی از Unit Test
  • وجود صف‌ها (Queue) و کارها (Jobs) برای اجرای فعالیت‌های طولانی
  • انجمن بسیار فعال جهت پاسخگویی به سوالات
  • منابع آموزشی بسیار فراوان
  • سطح امنیتی بسیار بالا

امیدوارم مقاله‌ی فوق به عنوان اولین فصل آموزش لاراول فارسی مورد توجه شما واقع شده باشد. در صورتیکه تمایل به یادگیری این فریم‌ورک قدرتمند دارید حتما با ما همراه باشید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری لاراول توصیه می‌کند:
نویسنده شوید
دیدگاه‌های شما (6 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

bigrez
22 مرداد 1398
سلام کم کم داره نسخه ۶ لاراول هم میاد و میخواستم شروع کنم به یادگیری بنظرتون مطالبی که تو سایت گذاشتید واسه بنده مناسبه؟؟؟اخه میترسم اون نسخه ای که شما اموزش میدید تفاوت زیادی با نسخه ای که در سیستمم دارم داشته باشه میترسم به مشکل بخورم اگه امکانش هست یه توضیحی بدید ممنون میشم ازتون

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

روکسو
25 مرداد 1398
تغییرات در نسخه جدید لاراول بسیار کم بوده است و از این نظر مشکلی نخواهید داشت.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

سامان
26 آذر 1397
سلام . اگر سوال تخصصی از لاراول داشته باشم کجا میتوانم مطرح کنم ؟ سایت شما پاسخ میدهد ؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

روکسو
26 آذر 1397
سلام وقت شما بخیر برای پرسش سوالات تخصصی خود مرتبط با برنامه نویسی (یا فریم ورک لاراول) لطفا به روکسو کیو مراجعه کنید.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

میلاد
20 اسفند 1396
با سلام و خسته نباشید فقط میتونم بگم عالیه دستتون درد نکنه ادامه بدید و اگر ممکن هست آموزش لاراول 5.6 را بصورت تصویری در سایت قرار بدید خیلی ممنون

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

behzad
19 آذر 1396
عااااااااااااااااااااااااااالی و واقعا ممنونم ازتون

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

علی
27 تیر 1396
مطلب عالی بود . من همین تازه با سایت شما آشنا شدم امیدوارم بیشتر اینجا بمونم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

رادین
22 اردیبهشت 1396
این بهترین مقاله معرفی فرم وورک لاراول بود . خسته نباشید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.