لاراول چیست؟
برای معرفی لاراول ابتدا باید فهمید PHP چیست ؟ PHP یکی از زبانهای پر استفاده برای برنامه نویسی وب میباشد که کاربرد بسیار وسیعی دارد. این زبان طی چند سال اخیر با اضافه کردن امکانات مدرن و پیشرفته، تکامل یافته و توانسته است همه نیازهای برنامه نویسان را تمام و کمال براورده سازد. با گسترش PHP و افزایش محبوبیتاش، Frameworkهای بسیاری ظهور کردند اما تنها بعضی از آنها، از همه قابلیتهای زبان PHP استفاده کردهاند.
محبوب ترین فریم ورک PHP
Laravel یکی از محبوبترین فریم ورکهای PHP است که در سراسر دنیا، از آن برای ساخت برنامههای تحت وب بزرگ و کوچک، استفاده میشود. لاراول به دلیل کارایی، امکانات و قابل تنظیم بودن یا مقیاس پذیری بالایش، انتخابی عالی برای توسعه دهندگان بزرگ و حرفه است.
لاراول توسط Taylor Otwel در سال ۲۰۱۱ ساخته شده و تا به امروز به میزان قابل توجهی آن را توسعه و گسترش داده است به طوریکه امروزه لاراول، با تمام تکنولوژیهای برتر وب، سازگار و همگام است. این فریم ورک جادویی، دارای اکوسیستم بسیار بزرگی است که شامل امکاناتی نظیر: هاستینگ و پیاده سازی آسان، ORM ، DB query ، Routing ، Blade و غیره میشود.
لاراول، رایگان بوده و به صورت متن باز ارایه گردیده است. این بدان معنی است که شما میتوانید تغییرات خاص خود را در این فریم ورک، اعمال کرده و آن را به فریم ورک اختصاصی خود تبدیل نمایید. شما میتوانید به آسانی این فریم ورک محبوب را شخصی سازی کنید تا ساختار دلخواه خود را برای نوشتن سایتهایتان داشته باشید.
فریم ورک لاراول،محبوبترین فریم ورک php از معماری سه بعدی MVC و چارچوب سمفونی تبعیت میکند. این امر باعث میشود آموزش لاراول آسان گشته و طراحی اپلیکیشن یا سایت با آن سریعتر پیش برود. لاراول با استفاده از امکانات داخلی و شخصی خود از قبیل mail ، authentication ، routing ، sessions و … سختی توسعه اپلیکیشنها را کاسته و شیرینتر کرده است.
بررسی میزان محبوبیت فریم ورکهای PHP در گوگل ترند، حاکی از رشد روز افزون محبوبیت فریم ورک Laravel است. به همین دلیل اکثر شرکتهای بزرگ و کوچک به دنبال جذب برنامه نویس مسلط به لاراول هستند و کار با آن یکی از مشاغل پر درآمد جهان میباشد.
تاریخچه لاراول
لاراول ۱ :
این نسخه در ۹ ژوئن ۲۰۱۱ رونمایی شد که شامل امکانات زیر بود :
- authentication یا همان سیستم احراز هویت لاراول: برای آشنایی بیشتر به این مقاله مراجعه فرمایید.
- localization یا قابلیت چند زبانه بودن لاراول
- models یا همان مدلها : جهت آموزش این قابلیت به این آدرس مراجعه فرمایید .
- views
- sessions
- routing یا آدرس دهی و تعریف مسیر یا url .جهت آموزش این قابلیت به این آدرس مراجعه فرمایید .
و چند امکان و مکانیسم دیگر. اما به دلیل عدم پشتیبانی از کنترلرها controller، نمی توانست عنوان MVC را به دوش بکشد.
لاراول۲ :
در سپتامبر ۲۰۱۱ منتشر گردید و امکاناتی چون Controller و Blade نیز به آن اضافه گردید که لاراول را به معنای واقعی در لیست فریم ورکهای PHP قرار داد. از آن به بعد میتوانستند ادعا کنند که Laravel بر پایه MVC ساخته و طراحی شده است.
لاراول۳ :
در فوریه ۲۰۱۲ رونمایی شد و شامل امکانات اضافی چون: خط فرمان Artisan ، Event یا همان رویدادها، Migration برای جدولهای دیتابیس و سیستم پکیجینگ که به Bundles معروف است، بود.
لاراول۴ :
در ماه مه ۲۰۱۳ انتشار یافت و امکانات زیادی چون database seeding ، Queue یا صف بندی، پشتیبانی از ارسال انواع ایمیل و قابلیت soft delete استفاده میبرد.
لاراول۵ :
درست بعد از نسخه ۴.۳ در فوریه ۲۰۱۵ منتشر شد. از جمله امکاناتی که به این نسخه اضافه گردید Scheduler بود. ابزار یا امکانی که به برنامه نویس قدرت زمان بندی وظایف را میداد. بهینه کردن پکیجهای assets از طریق Elixir و سهولت سیستم احراز هویت از طریق پکیج Socialite و همچنین معرفی ساختار درختی برای ساخت اپلیکیشن از دیگر امکانات لاراول ۵ بود. لاراول تا نسخه ۵.۸ امکانات گستردهای به این فریم ورک اضافه کرد و نیز باگها و مشکلات بسیاری را رفع نمود که در زیر به برخی از آنها اشاره میشود :
- افزایش سرعت توسعه برای توسعه دهندگان
- Laravel Dusk، Laravel Mix، Blade Components and Slots، Markdown Emails، Automatic Facades، بهبود مسیریابی یا همان route نویسی.
- قابلیت تایید ایمیل
لاراول ۶ :
لاراول ۶ در سوم سپتامبر ۲۰۱۹ ارائه گردید. این نسخه دارای امکانات زیادی است که در زیر به برخی از آنها اشاره میشود :
- Job middleware : در لاراول ۶ میتوانیم برای job هایی که داریم میدل ویر تعریف و متصل کنیم.
- Lazy collection : لاراول ۶ امکانی را فراهم ساخته است که میتوانید به هنگام کار با دادههای حجیم، استفاده از حافظه را کمتر کنید. مثلا در Eloquent میتوانید به جای استفاده از متد all () که کل اطلاعات را به حافظه میدهد، از متد cursor () استفاده کنید و عمل پردازش را یکی یکی روی دادهها انجام دهید.
- بهینه کردن subQueryها در الوکوئنت : در نسخه جدید، با اضافه شدن متد addSelect() استفاده از کوئری در داخل کوئری دیگر خیلی راحتتر شده است.
- بهبود پاسخهای سفارشی هنگام کار با سیستم احراز هویت : با افزوده شدن متد Gate::inspect () سفارشیسازی پیغامهای احراز هویت لاراول آسانتر گشته است.
- مستقل شدن پکیج Laravel UI
- سازگاری با Laravel Vapor برای deploy کردن اپلیکیشنهایتان
- و امکاناتی که هر روز افزوده میشوند.
قابلیت های لاراول محبوب ترین فریم ورک php
در اینجا به قابلیتهایی اشاره میشود که Laravel را از بقیه فریم ورکها جدا میسازد:
Dependency Management یا مدیریت وابستگیها در لاراول
مدیریت وابستگیها، یکی از بهترین امکانات لاراول است. لاراول این وظیفه را به وسیله Service Container یا همان IoC انجام میدهد. IoC خلاصه شده عبارت Inversion of Control است. درک صحیح Service Container ، هستهایترین بخش آموزش هر برنامه مدرنی است. سرویس کانتینر لاراول، یکی از قدرتمندترین ابزارهای مدیریت وابستگیهای کلاس هاست.
Authentication یا سیستم احراز هویت لاراول
سیستم احراز هویت یکی از بخشهای مهم و حیاتی هر اپلیکیشن پیشرفته است. Authentication همواره یکی از چالشهای بزرگ برای طراحان وب است. نوشتن این سیستم در فریم ورکهای دیگر، میتواند وقت زیادی از برنامه نویسان را بگیرد. اما در لاراول پیاده سازی این سیستم، به آسانی نوشتن یک خط کد است چرا که سیستم احراز هویت لاراول به صورت یک پکیج آماده و مجزا نوشته شده و آماده است. حتی لاراول مستندات و امکاناتی در اختیارتان میگذارد تا شما بتوانید سیستم احراز شخصی خودتان را بنویسید. برای آشنایی بیشتر به این مقاله مراجعه فرمایید.
Caching یا کش کردن
Caching یا کش، یک تکنولوژی مهم برای ذخیره موقت اطلاعات و فراخوانی سریع آنها در موقع نیازست. اصولا کش کردن برای بالا بردن کارایی برنامه به کار میرود. لاراول تقریبا تمام اطلاعات را از فایلهای view به route ها کش میکند که باعث کاهش زمان محاسبه و پردازش میشود که در نتیجه افزایش کارایی اپلیکیشن را به همراه خواهد داشت.
Routing یا آدرس دهی
آدرس دهی در لاراول یا routing در محبوبترین فریم ورک php، بسیار آسان و قابل فهم است. Routing لاراول میتواند برای ساخت اپلیکیشنهای سریع و آسان استفاده شود. شما میتوانید با استفاده از routing لاراول، routeها یا مسیرها را اسم گذاری کنید، گروه بندی نمایید و یا حتی اطلاعات مدلها را در آنها تزریق نموده و در جای دیگر استفاده نمایید که به این قابلیت Route Model Binding نیز میگویند.
میتوانید Middlewareها را مستقیما در route ها اعمال نموده و محدودیت ایجاد نمایید. Routeهای لاراول URLهای شما را به URLهایی تبدیل میسازند که برای سئو SEO عالی بوده یا به اصطلاح SEO friendly هستند و این به معنی بهتر دیده شدن سایت شما در گوگل خواهد بود. برای آشنایی بیشتر به این مقاله مراجعه فرمایید.
Restful Controllers
ابتدا باید توضیحی درمورد RESTful عرض کنیم. RESTful یا REST مخفف ( Representational state transfer) یک سبک معماری است که پاسخگوی درخواستهایی که از سمت سرور ارسال میشود است. rest را شاید در نامهای مختلفی دیده باشید مثل RESTful APIs . REST از سال ۲۰۰۵ در وب شناخته شد که در ظاهر کمی گیجکننده به نظر میرسد، اما با کمی توضیح، میتوان این مفهوم در ظاهر پیچیده را رمزگشایی کرد!
RESTful یک سبک معماری است که پاسخ گوی درخواستهایی که از سمت سرور ارسال میشود است این درخواستها میتوانند کارهای مختلفی بکنند مثل حذف داده، ثبت داده، دریافت داده و ارسال داده (DELETE , POST , PUT , GET ) .
همچنین به معنای نمایش اطلاعات برای کاربران از راهی که خوانایی بالایی داشته باشد. یکی از مفاهیم اصلی که باید در ارتباط با REST بدانید این است که REST یک پروتکل یا استاندارد نیست، این تنها یک راهحل و یا یک سبک معماری است.
Controllerها در لاراول، شما را قادر به تفکیک متدهای GET و POST و نحوه پاسخگویی به هرکدام خواهد کرد. حتی میتوانید resource controller ایجاد کرده و تمامی امور را به راحتی انجام دهید. در resource controller همه متدهای ذخیره، فراخوانی، حذف و … و حتی routeهای مربوطه شان از قبل نوشته شده و آمادهاند. حتی میتوانید resource controller ها را به route ها bind (متصل) کنید. برای آشنایی بیشتر به این مقاله مراجعه فرمایید.
تست کردن یا همان Debug
لاراول پکیجی به نام PHPUnit دارد که میتواند اپلیکیشن شما را در سطح وسیعی تست کرده و اشکال زدایی کند.
- از دیگر مزایای لاراول، Blade است. تمامی فایلهای ویو view در این فریم ورک از نوع blade بوده و با پسوند .blade.php تمام می شوند. Blade از چندین helper جهت استفاده از دادهها در داخل فایلهای view پشتیبانی میکند. شما میتوانید helper یا templateهای خود را ساخته و استفاده نمایید.
Eloquent یا ORM راحتی استفاده از پایگاه داده
لاراول بر پایه Eloquent طراحی شده است که میتواند با تمامی موتورهای دیتابیس کار کند. ORM یا Eloquent جزو قدرتمندترین امکانات این فریم ورک است و همواره یکی از دلایل امنیت لاراول بوده و است. Eloquent به راحتی با MySQL و SQLite ارتباط برقرار میکند. لاراول مستندات و بایگانی جامع و وسیعی برای همه متدهای ORM در اختیار کاربر قرار داده است. برای آشنایی بیشتر به این مقاله مراجعه فرمایید.
روابط در لاراول
یکی دیگر از مزایای لاراول، آسانی و سهولت ارتباط جدولهاست. جدولها بیشتر از طریق مدلهای خود با هم در ارتباطی قوی هستند. میتوانید انواع روابط یک به یک One To One، یک به چند One To Many، چند به چند Many To Many، روابط با واسطه، روابط پلی مورفیک Polymorphic را در بین جداول و مدلها ایجاد کرده و از امکانات بی نظیر این فریم ورک نهایت لذت را ببرید. برای آشنایی کامل به این مقاله مراجعه فرمایید.
امنیت، امنیت و امنیت
لاراول، این فریم ورک محبوب از روشهای قدرتمندی برای تامین امنیت در اپلیکیشن استفاده میکند. لاراول همه پسوردها را به صورت hash ذخیره میکند نه به صورت تکست و متن. با تمام قدرت، از حملات CSRF و تزریق SQL جلوگیری کرده و همچنین از تزریق اسکریپتهای مخرب توسط کاربر محافظت میکند. جهت اطلاعات بیشتر درمورد حملات CSRF به مقاله ما در این خصوص مراجعه نمایید.
Artisan
لاراول از خط فرمان یا command line ای به نام آرتیسان Artisan استفاده میکند که دهها دستور از قبل ساخته شده برای برنامه نویسان دارد. شما میتوانید با استفاده از artisan از نوشتن دستورات اضافی خودداری و در وقت خویش صرفه جویی نمایید. کار کردن با artisan آرتیسان بسیار راحت و به آسانی تایپ چند کلمه است.
Migration
لاراول برای ساخت جدولهای دیتابیس از migration استفاده می کند. این امر کار با لاراول و تشکیل جداول دیتابیس را بسیار آسانتر نموده است. شما دیگر مجبور به تایپ و اجرای دستورات سخت و گمراه کننده SQL نیستید بلکه با دستورات بسیار ساده PHP قادر به نوشتن جدولها و ویرایش آنها خواهید بود. برای اضافه کردن یک ستون به جدول، لازم نیست جدول را از نو بسازید بلکه کافی است یک مایگریشن جدید ایجاد کنید. هر مایگریشن یک فایل php است.
بومی سازی یا Localization
لاراول شما را قادر به ساخت اپلیکیشنهای چند زبانه میکند. درست هنگامی که یک سایت با لاراول میسازید میتوانید همان سایت را به چند زبان مجهز سازید. برای این کار تنها لازم است از helper ای به نام transe() استفاده کنید.
- استفاده از خصوصیت auto-loading:
خصوصیت auto-loading در لاراول امکان load اتوماتیک کلاسها و کامپوننتها را در صورت نیاز به آنها فراهم کرده است.
ایجاد پکیجها
در لاراول به راحتی میتوانید یکبار برای همیشه پکیجهای خود را نوشته و از آن در برنامههای آینده خود استفاده کرده و ساعتها مجبود به کد زنی نباشید، یا آن را با دیگران به اشتراک بگذارید.
نصب و بروز رسانی آسان
از مزیتهای دیگر لاراول آسانی نصب این فریم ورک و راحتی بیش از حد کار با آن است. برای نصب لاراول تنها یک خط کد لازم است که باید در خط فرمان اجرا شود.
بروز رسانی لاراول از نصب آن نیز راحت تر است. کافی است نسخه مورد نظر را در فایل composer.json تغییر داده و سپس دستور زیر را در ترمینال خود لاراول اجرا کرد :
composer update
سرعت
در لاراول هم سرعت ساخت یک برنامه و هم سرعت اجرای برنامه به طرز قابل توجهی بالاست.
امکان ساخت component
با استفاده از قابلیت component میتوانید برنامه های کوچک را نوشته و در سایر پروژه های خود استفاه کنید تا نیاز به دوباره نویسی نباشید.
منابع
https://www.larashout.com/what-is-laravel-and-why-you-should-learn-it
https://laravel.com/docs/4.2/introduction
https://en.wikipedia.org/wiki/Laravel