فریم ورک لاراول و مزایایی که دارد
چرا فریم ورک؟
فریم ورک لاراول و دیگر فریم ورک هایی از این دست،برای این آمدند که به کدنویسی وب سایتهای پویا از ۰ تا ۱۰۰ پایان دهند.
امروزه برنامه نویسان حرفهای گاها به فکر استفاده از فریمورکهایی متناسب با نوع فعالیت خود هستند.
بدینمعنی که آنها تمایل دارند از ساختار منظم و قانونمند کامپوننتها،کتابخانهها و توابع به سادگی هرچه تمام تر استفاده کنند.
حال شاید این سوال برای شما بوجود بیاید که چرا فریمورک (FrameWork)؟ یا چرا لاراول (Laravel)؟ در ادامهی به توضیح مفصل این موضوع میپردازیم:
به این موضوع تا به حال توجه کردهاید که چرا کامپوننتها یا بستههای نصبی برخی از توسعهدهندگان PHP مفید میباشد؟
خب مشخص است که با این پکیجها و بستههای نصبی،نگهداری از سرویسها و نحوه کدنویسی ما بسیار ساده خواهد شد.
چون شما به جای نوشتن توابع بدیهی فقط کافیست از آنها استفاده کرده و نرمافزار خود را توسعه دهید.
البته لازم به ذکر است که هر بسته نصبی یا کامپوننتی معتبر نیست.این پیشنهاد را از بنده داشته باشید که استفاده از کامپوننتها تنها و تنها به حمایتکننده یا به اصطلاح Supporter آن کامپوننت و یا پکیج بستگی دارد.
حال فرض کنید که شما نرمافزاری را بدون استفاده از فریمورکها ایجاد میکنید.
از کجا شروع خواهید کرد؟
احتمالا در ابتدا باید تمام درخواستهای HTTP را مسیردهی کنید سپس نیاز دارید که تمامی کتابخانههای Request(درخواست)و Response(پاسخ)را کدنویسی کرده و آنها را در دسترس قرار دهید.
ساخت یک روتر(Router)!چقدر سخت.
باید یک روتر برای نرمافزار خود بنوسید و تنظیمات آن را مطابق با کتابخانهای که خودتان ایجاد کردهاید تهیه کنید.
حال این سوال برای شما پیش میآید که از چه سینتکس و ساختاری برای کتابخانههای روتر استفاده کنید؟
چه ساختاری برای روتر خود تعیین خواهید کرد؟
چگونه کنترلرهای خود را ایجاد میکنید؟
چطور تمامی صفحات را بارگذاری خواهید کرد؟
خب شاید سریعا پاسخ بدهید با استفاده از تزریق وابستگیها مبحث کنترلرها را بهینه میکنم!
اما به راستی این کارها چقدر زمان میبرد؟اصلا فرض کنیم شما توسعهدهندهی بسیار قدری هستید و این سوالها برایتان پوزخندی بیش به ارمغان نمیاورد!
اما یک درصد فکر کنید شما در یک کار گروهی شرکت کردهاید و مدیریت یک پروژه در اختیار شماست آیا هر آنچه در ذهن شما میگذرد نیز در ذهن سایر اعضای تیم خواهد گذشت؟!
آیا مدت زمانی که بخواهید به آنها آموزش دهید که چگونه ساختار قانونمند ذهن شمارا اجرا کنند در نظر گرفتهاید؟
آیا به این فکر کردهاید که ساخت یک فریمورک بومی که زاییده افکار حرفهای برنامهنویسی شماست چقدر زمان میبرد؟
اما بیایید به ادامه توضیحات مقاله بپردازیم.
چند نشان را با یک تیر بزنید
به این نکته توجه کنید که شما پس از بهرهمندی از فریمورک،دیگر به سوالهای فوق نباید جواب دهید بلکه سوالات شما نمودی بهتر پیدا میکنند.
مثلا،از چه کامپوننتی برای ارتباط با پایگاه داده استفاده کنم؟از چه کامپوننتی برای نمایشگر خروجی خود استفاده کنم؟و … .
شما به مراتب سازگاری مناسبتری با فریم ورک خود ایجاد خواهید کرد.
بعلاوه،فریمورکها قوانین و قواعد خاصی را برای شما وضع میکنند تا خطای کدزنی و توسعه یک اپلیکیشن را کاهش داده و انسجام تیمی شما را حفظ کنند.
بنابراین سازگاری تیمی شما نیز افزایش پیدا میکند چون وقتی شما یک پروژه لاراول ایجاد کردید و مثلا بحث روتینگ یا مسیردهی را کاملا متوجه شدید دیگر برای شما فرقی نمیکند که عنوان پروژه چیست.
آنچه برای شما حائز اهمیت میشود،سینتکس و ساختار مسیردهی در پروژههاست که یکسان میباشد.
این همان با یک تیر چند نشان زدن است!
در برابر هر تغییری انعطافپذیر باشید
گاهی شما در یک تیم و مجموعه برنامهنویسی مشغول به کار هستید.
مدیر پروژه از شما درخواست میکند که مبحث کنترلر صفحهی لاگین را رها کرده و بخش ویو و کنترلر صفحه محصولات که همکارتان تاکنون روی آن کار میکرده را ادامه و توسعه دهید.
خب!شما بعنوان یک توسعهدهنده انعطافپذیر شدید هستید.
زیرا به راحتی هر چه تمام تر میتوانید ادامه کدهای همکارتان را نوشته و به توسعه نرمافزار بپردازید.
دلایلی که برای شما عزیزان ارائه کردیم مستند و بر اساس تجربه کاری حاصل شده است.
لذا از توضیح بیش از اندازه فواید استفاده از فریمورک پرهیز کرده و در ادامه به صورت تیتروار برخی از اساسیترین دلایل استفاده از فریمورکها را شرح خواهیم داد.
دلایل استفاده
-افزایش سرعت توسعه نرمافزارها.
-تولید کدها و برنامههای سازماندهی شده جهت استفاده مجدد و نگهداری.
-افزایش امنیت وب سایت برای خطاهایی سطح پایین.
-استفاده از ساختار MVC (مخفف کلمات Model-View-Controller).
-استفاده از ابزار مدرن برنامهنویسی تحت عنوان برنامهنویسی شیء گرایی(Object-Oriented-Programming)
و اما به این سوال هنوز پاسخ ندادهایم که از بین حدود ۱۰ الی ۱۵ فریمورک PHP چرا لاراول را انتخاب کردهایم؟
پاسخ به این سوال تنها زمانی مشخص خواهد شد که شما ویژگیهای کلیدی این فریمورک را مطالعه کنید.
البته در این مقاله از مقایسهی فریمورکهای PHP خودداری میکنیم چون این مقایسه هیچگاه نتیجه دلچسبی نخواهد داشت.
بر اساس تجربیات کاری با چندین فریمورک و البته با مطالعه چند مقاله قدرتمند،نتایجی به دست آمده که میتوانید آن ها را در پایین مطالعه کنید:
-هسته توسعهپذیر و سریع
-مسیردهی (routing) ساده و تمیز
-سیستم تایید هویت کاربری خودکار (Authentication)
-سیستم ACL حرفهای و پیشرفته
-استفاده از مفهومی به نام Eloquent برای برقراری ارتباط بین مدل و پایگاه داده
-دارای کلاسها و توابع بسیار متنوع
-شیءگرایی بسیار حرفهای و منسجم
-پشتیبانی همزمان از چندین بانک اطلاعاتی (SQL Server, MySQL, PostgerSQL, SQLight, Oracle)
-استفاده از موتور قالب Blade جهت طراحی بسیار سادهی View
-رابط و ORM بسیار ساده
-نصب و اجرای کاملا ساده با استفاده از Composer
-پشتیبانی از Unit Test
-وجود صفها (Queue) و کارها (Jobs) برای اجرای فعالیتهای طولانی
-انجمن بسیار فعال جهت پاسخگویی به سوالات
-منابع آموزشی بسیار فراوان
-سطح امنیتی بسیار بالا