آموزش لاراول (Laravel)

دسته بندی: آموزش پی اچ پی (PHP)

آموزش لاراول

آنچه در این صفحه می خوانید:

لاراول چیست؟

Laravel فریمورک وب پی اچ پی اوپن سورس که توسط Taylor Otwel ساخته شده و برای توسعه برنامه های وب در پی الگوی معماری MVC و مبتنی بر سیمفونی در نظر گرفته شده است. برخی از ویژگی های لاراول سیستم بسته بندی مدولار با مدیر وابستگی اختصاصی، راه های مختلف برای دسترسی به پایگاه داده رابطه ای، برنامه های کاربردی برای کمک به استقرار و نگهداری برنامه ها و جهت گیری آن به سمت Syntactic sugar است. لاراول از کتابخانه های گوناگونی به ویژه بسیاری از کتابخانه های Symfony استفاده می کند. کد منبع Laravel در GitHub میزبانی شده و تحت شرایط MIT مجوز دریافت می کند.

لاراول با کاهش وظایف رایج مورد استفاده در بسیاری از پروژه های وب باعث پیشرفت سریع آن ها می گردد. فریمورک لاراول به صورت Component Base است و شما می توانید به راحتی کامپوننت های دلخواهتان را به برنامه اضافه کرده و توسعه آن را سریع تر کنید. لاراول حاوی Template Engine اختصاصی به نام Blade است. اگرچه این تمپلیت انجین در مقایسه با ابزارهایی مانند Twig از امکانات کمتری برخوردار است، با این حال تمامی نیازهای معمول را برطرف می کند و در دستیابی به امنیت کافی در ایجاد خروجی به برنامه نویسان یاری می رساند. سیستم مسیردهی (Routing) در لاراول نیز به صورت اختصاصی توسعه یافته است. این سیستم امکانات بسیاری را در اختیار توسعه دهنده قرار می دهد. استفاده از پیشوندها و پسوندها، کنترلرها، فیلترها، توابع درون خطی و بسیاری امکانات دیگر کار کردن با مسیرها را ساده و کارآمد می کنند.

لاراول برای مدیریت نیازمندی ها از Composer استفاده می کند. بروزرسانی فریمورک هم با استفاده از همین ابزار صورت می پذیرد. به این معنی که با صرف کمترین انرژی، همیشه می توانید از آخرین نگارش کتابخانه ها و فریمورک لاراول در پروژه بهره برداری کنید. مهم ترین ویژگی لاراول ORM اختصاصی آن به نام Eloquent است. Eloquent کار کردن با اطلاعات را به گونه ای آسان می کند که باور آن گاهی دشوار به نظر می رسد. کدهای نوشته شده با Eloquent شباهت بسیار زیادی با زبان انسان دارند و حتی اگر تا کنون با این شیوه کد ننوشته باشید، معنی کدها را به خوبی متوجه خواهید شد.

برنامه نویسی Eloquent بر پایه ی سیستم PDO طرح ریزی شده است و بنابراین علاوه بر امکاناتی که این سیستم در اختیار برنامه نویسان قرار می دهد، امکان استفاده از دستورات PDO نیز فراهم است. Eloquent امکان ذخیره و بازیابی اطلاعات در پایگاه داده های مختلف از جمله MySQL ،Postgres و SQL Server را فراهم می کند. با توجه به اینکه لاراول به طور پیش فرض از PDO برای اجرای Query های سمت دیتابیس استفاده می کند بنابراین تا حد بسیار زیادی ورودی ها را بررسی و از عدم تزریق متغیر ناخواسته اطمینان حاصل می کند و از حملات SQL Injection جلوگیری می کند. Laravel در دسترس و قدرتمند است و ابزارهایی را برای برنامه های کاربردی بزرگ فراهم می کند.

تاریخچه فریمورک لاراول

Taylor Otwel، تلاش کرد لاراول را به عنوان جایگزین پیشرفته تر برای فریمورک CodeIgniter ایجاد كند، اما ویژگی های خاصی مانند پشتیبانی داخلی برای تأیید اعتبار و مجوزهای كاربری را ارائه نداد. اولین نسخه بتا لاراول در تاریخ 9 ژوئن 2011 عرضه شد و در ادامه نسخه Laravel 1 بعداً در همان ماه منتشر شد.

  • لاراول 1 شامل پشتیبانی داخلی برای تأیید هویت، بومی سازی، مدل ها، نماها، نشست ها، مسیریابی و سازوکارهای دیگر بود، اما برای کنترل کننده هایی که مانع از آن می شوند فریمورک MVC واقعی باشند، از پشتیبانی داخلی برخوردار نبودند.
  • Laravel 2 در سپتامبر 2011 منتشر شد و پیشرفت های مختلفی را از طرف برنامه نویسان و جامعه به ارمغان آورد. ویژگی های مهم جدید شامل پشتیبانی از کنترل کننده ها است، که Laravel 2 را به فریمورک کاملاً سازگار با MVC، پشتیبانی داخلی از اصل وارونگی کنترل (IoC) و سیستم جذاب به نام Blade تبدیل کرده است. به عنوان روند نزولی، پشتیبانی از بسته های شخص ثالث در Laravel 2 حذف شد.
  • Laravel 3 در فوریه 2012 با مجموعه ای از ویژگی های جدید از جمله رابط خط فرمان (CLI) به نام Artisan، پشتیبانی داخلی برای بیشتر سیستم های مدیریت پایگاه داده، میگریشن بانک اطلاعاتی به عنوان نوعی کنترل نسخه برای چیدمان پایگاه داده، پشتیبانی از پردازش منتشر شد. رویدادها و سیستم بسته بندی به نام Bundles در لاراول 3، باعث افزایش پایگاه داده و محبوبیت کاربر Laravel همراه شد.
  • Laravel 4، با کدگذاری Illuminate، در ماه مه 2013 منتشر شد. این به عنوان بازنویسی کامل از فریمورک Laravel ساخته شد و طرح آن را به مجموعه ای از بسته های جداگانه توزیع شده از طریق Composer، که به عنوان مدیر بسته برنامه کاربردی است، انتقال می داد. چنین چیدمان قابلیت توسعه قابلیت Laravel 4 را که با برنامه انتشار رسمی آن در مدت شش ماه بین نسخه های جزئی جفت شده بود، بهبود بخشید.
  • لاراول 5 در فوریه 2015 به دلیل تغییرات داخلی که منجر به تغییر مجدد نسخه قبلی 3.3 Laravel 4.3 شد، رایگان شد. ویژگی های جدید در نسخه Laravel 5 شامل پشتیبانی از برنامه ریزی کارهای انجام شده به صورت دوره ای از طریق بسته ای به نام Scheduler، لایه انتزاعی به نام Flysystem است که اجازه می دهد تا از ذخیره سازی از راه دور به همان روش سیستم های پرونده محلی استفاده شود، رسیدگی بهتر به دارایی های بسته از طریق Elixir، و احراز هویت خارجی ساده شده از طریق بسته Socialite اختیاری ساده شده است. Laravel 5 همچنین ساختار جدید درخت داخلی برای برنامه های توسعه یافته معرفی کرده است.
  • Laravel 5.1 که در ژوئن 2015 منتشر شد، اولین نسخه از Laravel بود که پشتیبانی طولانی مدت (LTS) دریافت کرد. نسخه های جدید LTS برای هر دو سال یک بار برنامه ریزی شده بود.
  • Laravel 5.3 در 23 آگوست 2016 منتشر شد. ویژگی های جدید در 5.3 با اضافه کردن موارد اضافی از جعبه برای کارهای مشترک، بر بهبود سرعت توسعه دهنده متمرکز شده اند.
  • Laravel 5.4 در تاریخ 24 ژانویه 2017 منتشر شد و دارای بسیاری از ویژگی های جدید مانند Laravel Dusk ، Laravel Mix ، Blade Component and Slots ، Markdown Email ، Automatic Facades، Route Improvements، Route Improvements، پیام بالاتر سفارش برای کلکسیون ها و بسیاری دیگر است.

ویژگی های فریمورک لاراول

  • استفاده از بسته های نرم افزاری: با این ویژگی می توان به راحتی اپلیکیشن های تجاری را به وجود آورد.
  • استفاده از خط فرمان Artisan:استفاده از خط فرمان Artisan این امکان را می دهد تا کارهای پیچیده ای را توسط چند خط کد ساده انجام دهیم.
  • ORM نقشه ارتباط بین اشیا:ویژگی پیشرفته پیاده سازی شده از php برای الگوی فعالیت رکوردها در بانک اطلاعاتی است.
  • ساخت Query: امکان دسترسی مستقیم به ORM ها را می دهد. به جای تایپ مستقیم SQL QUERY ها لاراول این امکان را می دهد تا کوئری ها با برنامه تر ساخته شوند و برای استفاده های مجدد ذخیره سازی گردند.
  • مسیریابی بازگشتی: رابطه بین لینک ها و مسیرها را تعریف می کند.
  • موتور قالب Blade: به راحتی چند تا از مدل های داده ای را با محصول نهایی ویو ترکیب می کند.
  • Migrations:کلاس هایی با قابلیت ایجاد تغییرات در دیتابیس هستند که وظیفه ایجاد، حذف و تغییر جداول بدون استفاده از کدهای SQL را بر عهده دارند. انجام تمامی موارد در نهایت به وسیله SQL انجام می شود منظور در اینجا عدم استفاده از کد SQL برای توسعه دهنده هنگام طراحی Migration است.
  • استفاده از کامپوننت ها: لاراول از پکیج ها و کامپوننت های زیادی بهره می برد که به راحتی بر روی پروژه نصب و استفاده می شوند.
  • امکان تعریف RESTFUL Controllers: منطقی برای سهولت استفاده از کنترلرها و کاهش کدها در آن بر پایه درخواست های GET و POST است.
  • استفاده از خصوصیت Auto-loading: خصوصیت auto-loading در لاراول امکان لود اتوماتیک کلاس ها و کامپوننت ها را در صورت نیاز به آن ها فراهم کرده است.
  • استفاده از ابزار Unit Testing: با استفاده از ابزار تست لاراول به راحتی می توانید برنامه های خود را تست کنید.
  • سیستم روتینگ ساده و سریع: با استفاده از این سیستم شما می توانید اکثر درخواست ها را به سادگی در برنامه پاسخ دهید.
  • ظرفیت پذیرش قدرتمند
  • پردازش پس زمینه کارآمد
  • پخش رویداد در real-time

مزایای استفاده از فریمورک لاراول

لاراول به عنوان فریمورک PHP تمیز و مرتب برای توسعه وب، جامعه PHP را با طوفانی روبرو می کند. اکنون، توسعه دهندگان PHP در صدد هستند مجدداً محبوب ترین زبان سمت سرور وب را تجربه کنند. توسعه دهندگان وب ماهر بهترین راه حل های فناوری را برای برنامه های وب انتخاب می کنند. این می تواند یک فریمورک وب از پیش ساخته شده یا CMS مانند Laravel باشد.

در زیر برخی از مهمترین مزایای استفاده از Laravel برای توسعه وب آمده است:

ایجاد سیستم های مجوز و تأیید اعتبار

هر صاحب برنامه وب باید اطمینان حاصل کند که کاربران کسانی هستند که ادعا می کنند وجود دارند و بنابراین از دسترسی کاربران غیرمجاز به منابع امن جلوگیری می کنند. Laravel اجرای احراز هویت را بسیار ساده و راحت می کند. تقریباً همه چیز خارج از باکس تنظیم شده است. این فریمورک همچنین روش ساده برای سازماندهی منطق مجوز و همچنین دسترسی به منابع کنترل را فراهم می کند.

ادغام با ابزارها برای ایجاد سریعتر برنامه های وب

نه تنها برای ساختن برنامه بلکه ایجاد سریع برنامه نیز ضروری است، که منجر به شتاب درآمد خواهد شد. ادغام با حافظه پنهان نگه داشتن غالباً یکی از اصلی ترین اقدامات انجام شده برای تقویت عملکرد برنامه وب است. لاراول از ابزار های کش محبوب، مانند Redis و Memcached خارج از جعبه پشتیبانی می کند. به طور پیش فرض، فریمورک پیکربندی شده است تا از درایور حافظه نهان فایل استفاده کند که اشیاء ذخیره شده را در سیستم فایل ذخیره می کند. حتی پیکربندی تنظیمات حافظه پنهان حتی ممکن است.

ادغام سرویس های پست الکترونیکی

خدمات ایمیل می توانند برای ارسال اعلان ها به ایمیل کاربران پس از وقایع مختلف استفاده شوند. برای مثال تصور برنامه وب مدرن دشوار است، به عنوان مثال، حتی در مورد ثبت نام موفق آنها در سایت، حتی اطلاع رسانی ایمیل ساده برای کاربر جدید وجود ندارد. این فریمورک API ساده و تمیز را بیش از کتابخانه معروف SwiftMailer ارائه می دهد. این برنامه همچنین درایورهای Mailgun ،SMTP ،Mandrill ،Amazon SES و موارد دیگر را فراهم می کند و به برنامه امکان می دهد تا به سرعت ارسال ایمیل از طریق سرویس محلی یا ابری را آغاز کند. این پشتیبانی از ارسال اعلان ها از طریق کانال های مختلف تحویل، از جمله SMS و Slack را فراهم می کند.

بررسی استثنا و خطای پیکربندی

روش برخورد برنامه با خطاها می تواند تأثیر بسزایی در رضایت کاربر و همچنین قابلیت استفاده برنامه داشته باشد. در صورت عدم استفاده از خطای مناسب، ممکن است کاربر تصمیم بگیرد که مسئله در برنامه قرار دارد و برای همیشه از آن فاصله می گیرد. هیچ کس نمی خواهد مشتری خود را گم کند یا آن ها را ناامید کند. با استفاده از Laravel، مسئولیت رسیدگی به خطا و استثناء برای هر پروژه جدید مستقر در Laravel پیکربندی شده است. علاوه بر این، آن را با کتابخانه ورود به سیستم Monolog یکپارچه شده است که ارائه می دهد پشتیبانی از دستگاه های مختلف قدرتمند ورود به سیستم.

کار تست خودکار

بدون آزمایش و تأیید اینکه توسعه دهنده چه چیزی ایجاد کرده است، از چه طریق کسی می تواند اطمینان حاصل کند که این نرم افزار بدون هیچ گونه اشکال، خطا، باگ و رعایت الزامات اولیه برنامه انجام خواهد داد؟ تست خودکار زمان کمتری دارد و در اکثر موارد دقیق تر از کتابچه راهنمای کاربر است. لاراول با آزمایش در ذهن ایجاد می شود. در واقع، پشتیبانی از تست با PHPUnit خارج از باکس است. همچنین با روش شناسی مناسب یاور کمک می کند و امکان تست شفاف برنامه ها را فراهم می آورد.

تفکیک کد منطق تجارت از کد ارائه

چنین جدایی به طراحان طرح HTML اجازه می دهد تا بدون تعامل با توسعه دهندگان، به راحتی ظاهر صفحه وب را تغییر دهند. اگر کلیه برنامه نویسی برنامه دارای جدایی مناسب در ابتدای مرحله توسعه باشد، ممکن است درخواست های ویژگی و رفع اشکال با سرعت بیشتری از طریق توسعه دهندگان انجام شود. از آنجا که Laravel فریمورک MVC است، جداسازی قبلاً انجام شده است.

رفع بیشترین آسیب پذیری های فنی

آسیب پذیری های امنیتی با توسعه هر برنامه وب دست به دست هم می دهند. بنیاد OWASP، سازمان غیرانتفاعی آمریکایی حیاتی ترین آسیب پذیری های امنیتی برنامه برنامه وب را توصیف می کند، که شامل جعل درخواست درخواست cross-site، تزریق کد SQL و cross-site scripting و موارد دیگر می شود. توسعه دهنده نباید فراموش کند و باید بتواند همه را قبل از تحویل تعمیر کند. Laravel با محافظت از آن در برابر جدی ترین خطرات امنیتی، به امنیت برنامه وب کمک می کند. پایگاه کد متعصب محافظت می شود و کد توسط چندین نفر مورد تأیید قرار گرفته است.

پیکربندی و تنظیم وظایف

مهم نیست ارسال ایمیل به مشترکان هر روز صبح و یا تمیز کردن جداول بانک اطلاعاتی در پایان روز، هر برنامه وب به مکانیزم برنامه ریزی وظیفه برای انجام وظایف در زمان زمان نیاز دارد. پیش از این، توسعه دهندگان برای هر کاری که باید برنامه ریزی کنند، ورودی Cron را ایجاد می کنند، اما این دردسر دارد. برنامه کار دیگر در کنترل منبع نیست و توسعه دهندگان باید SSH را وارد سرور کنند تا ورودی های Cron را اضافه کنند. برنامه ریز فرمان Laravel امکان تعریف صریح و روان از برنامه فرمان را در درون فریمورک فراهم می کند و فقط ورودی Cron برای سرور لازم است.

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

معماری MVC در لاراول

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

در یادداشت فنی تر، وقتی با استفاده از معماری MVC می سازید، مزایای استراتژیک زیر را دارید:

تقسیم نقش در پروژه شما آسانتر است.

وقتی معماری MVC به تصویب رسید، شما از مزیت تقسیم نقش ها در پروژه بهره مند می شوید. شما می توانید توسعه دهنده باطن داشته باشید که روی منطق کنترلر کار کند، در حالی که توسعه دهنده جلوه ای روی نماها کار می کند. این روشی بسیار متداول برای کار در شرکت هاست و داشتن MVC کار ساده تر از زمانی است که کد پایه دارای کد اسپاگتی باشد.

از نظر ساختاری "a-okay" است.

MVC می تواند شما را مجبور کند تا پرونده های خود را به فهرست های منطقی تقسیم کنید که پیدا کردن پرونده ها هنگام کار بر روی پروژه های بزرگ را آسان تر می کند.

ایزوله کردن مسئولیت

وقتی MVC را قبول می کنید، هر مسئولیت گسترده ای منزوی است. به عنوان مثال، می توانید در نماها و مدل ها بطور جداگانه تغییراتی ایجاد کنید زیرا مدل به ویو بستگی ندارد.

کنترل کامل URL های برنامه

با استفاده از معماری MVC، شما با انتخاب مسیرهای برنامه، کنترل کاملی در نحوه ویو برنامه خود به جهان دارید. این زمانی مفید است که می خواهید برنامه خود را برای اهداف سئو بهبود بخشید.

نوشتن کد SOLID راحت تر است.

با استفاده از MVC پیروی از اصل SOLID راحت تر است.

سرویس های لاراول

لاراول (Laravel) سرویس های متعددی در اختیار برنامه نویسان و طراحان سایت قرار می دهد. برخی از این سرویس ها عبارتند از :

  • Authentication(احراز هویت)
  • Authorization(مجوزها)
  • Artisan Console(کنسول آرتیزان)
  • Billing(پرداخت و صورتحساب)
  • Cache(کش)
  • Collections(مجموعه ها)
  • Elixir(مکانیزاسیون)
  • Encryption(رمزنگاری)
  • Errors & Logging(مدیریت خطاها و لاگ)
  • Events(رویدادها)
  • Package Development(توسعه ی بسته ها یا ماژول ها)
  • Filesystem/Cloud Storage (سیستم فایل – سیستم ابری)
  • Hashing(سیستم هش)
  • Helpers(ابزارهای کمکی)
  • Localization(بومی سازی)
  • Mail(ایمیل)
  • Pagination(صفحه بندی)
  • Queues(صف ها)
  • Redis(ردیس)
  • Session(مدیریت و رمزگزاری جلسات)
  • SSH Tasks (دسترسی آسان بهSSH)
  • Task Scheduling (اجرای زمانبندی شده ی دستورات)
  • Testing(آزمون)
  • Validation(ارزیابی)
آیا این نوشته را دوست داشتید؟