آموزش لاراول (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)، پستگرس کیوال (PostgreSQL) و اس کیوال سرور (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، پیام بالاتر سفارش برای کلکسیون ها و بسیاری دیگر است.

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

ویژگی های زیر به عنوان نکات کلیدی طراحی لاراول (به طور خاص ذکر نشده است، توضیحات به ویژگی های Laravel 3 اشاره دارد)

  • Bundles از زمان عرضه Laravel 3 یک سیستم بسته بندی مدولار را ارائه می دهند و دارای ویژگی های بسته بندی شده ای است که برای دسترسی آسان به برنامه ها در دسترس است. علاوه بر این، Laravel 4 از Composer به عنوان مدیر وابستگی برای اضافه کردن بسته های PHP فریمورک آگونیستی و لاراول مخصوص موجود در مخزن Packagist استفاده می کند.
  • Eloquent ORM (نقشه برداری شیء-رابطه) یک پیاده سازی پیشرفته PHP از الگوی ضبط فعال است، که در عین حال روش های داخلی را نیز برای اجرای محدودیت ها در روابط بین اشیاء پایگاه داده ارائه می دهد. پیروی از الگوی ضبط فعال، Eloquent ORM جدول های پایگاه داده را به صورت کلاس ارائه می دهد، با نمونه های شی آنها به ردیف های جدول جداگانه گره خورده است.
  • Query builder، از زمان Laravel 3 در دسترس است، یک گزینه جایگزین دسترسی مستقیم به بانک اطلاعاتی با Eloquent ORM را فراهم می کند. به جای این که نیازی به نوشتن مستقیم نمایش داده های SQL نباشد، سازنده پرس و جو لاراول مجموعه ای از کلاس ها و روش هایی را ارائه می دهد که قادر به ساختن نمایش داده ها به صورت برنامه ای هستند. همچنین این امکان را می دهد که حافظه پنهان انتخاب نتایج نمایش داده شد.
  • Application logic بخشی جدایی ناپذیر از برنامه های توسعه یافته است، یا با استفاده از کنترلرها یا به عنوان بخشی از اعلامیه های مسیر اجرا می شود. نحو استفاده شده برای تعریف منطق کاربرد مشابه با مورد استفاده در فریمورک Sinatra است.
  • Reverse routing رابطه بین پیوندها و مسیرها را مشخص می کند و باعث می شود تغییرات بعدی در مسیرها بطور خودکار در پیوندهای مربوط پخش شوند. هنگامی که پیوندها با استفاده از نام مسیرهای موجود ایجاد می شوند، شناسه های منابع یکنواخت مناسب (URI) بطور خودکار توسط Laravel ایجاد می شوند.
  • Restful controllers یک روش اختیاری برای تفکیک منطق در پشت درخواست های HTTP GET و POST ارائه می دهند.
  • Class auto loading بارگزاری خودکار کلاس های PHP را بدون نیاز به نگهداری دستی از مسیرهای ورود به سیستم فراهم می کند. بارگیری در صورت تقاضا مانع از قرار گرفتن اجزای غیرضروری می شود، بنابراین فقط اجزای مورد استفاده بارگیری می شوند.
  • View composers به عنوان واحد کد منطقی قابل تنظیم است که می تواند هنگام بارگذاری یک نمایش اجرا شود.
  • Blade templating engine یک یا چند قالب را با یک مدل داده ترکیب می کند تا نماهای حاصل را تولید کند، این کار را با انتقال دادن قالب ها به کد PHP ذخیره شده برای بهبود عملکرد انجام می دهد. Blade همچنین مجموعه ای از ساختارهای کنترلی خود مانند جمله های شرطی و حلقه ها را تهیه می کند، که به صورت داخلی در اختیار PHP قرار گرفته اند. علاوه بر این، خدمات لاراول را می توان از قالب های Blade فراخوانی کرد و موتور بخوبی را می توان با دستورالعمل های سفارشی گسترش داد.
  • IoC containers با پیروی از اصل وارونگی کنترل (IoC)، که در آن فریمورک به کد برنامه یا برنامه اختصاصی فراخوانده می شود، با وجود گزینه های فوری و ارجاع اشیا جدید به عنوان تک آهنگ ها، امکان ایجاد اشیا جدید را فراهم می آورد.
  • Migrations یک سیستم کنترل نسخه را برای طرح های پایگاه داده فراهم می کند، و این باعث می شود تا تغییرات در پایگاه داده برنامه را تغییر داده و تغییرات مورد نیاز را در طرح پایگاه داده ایجاد کنید. در نتیجه، این ویژگی، استقرار و به روزرسانی برنامه های مبتنی بر Laravel را ساده می کند.
  • Database seeding راهی را برای جمع آوری جداول بانک اطلاعاتی با داده های پیش فرض انتخاب شده فراهم می کند که می تواند برای آزمایش برنامه مورد استفاده قرار گیرد یا به عنوان بخشی از برنامه اولیه برنامه انجام شود.
  • تست واحد (Unit testing) به عنوان بخشی جدایی ناپذیر از Laravel ارائه می شود، که خود شامل تست های واحد است که رگرسیون را در فریمورک شناسایی و از آن جلوگیری می کند. تست های واحد را می توان از طریق ابزار خط فرمان صنعت ارائه داد.
  • Automatic pagination وظیفه اجرای صفحه بندی را ساده تر می کند و روشهای معمول اجرای دستی را با روش های خودکار یکپارچه در لاراول جایگزین می کند.
  • Form request یکی از ویژگی های Laravel 5 است که به عنوان پایه اعتبار سنجی ورود فرم توسط شنوندگان رویداد داخلی الزام آور و در نتیجه استفاده خودکار از روش های اعتبار سنجی فرم و تولید فرم واقعی عمل می کند.
  • Homestead یک ماشین مجازی Vagrant است که کلیه ابزارهای لازم برای توسعه لاراول را مستقیماً خارج از جعبه از جمله Ubuntu، گالپ، Bower و سایر ابزارهای توسعه برای توسعه دهندگان Laravel در اختیار برنامه نویسان لاراول قرار می دهد که در توسعه برنامه های وب کامل مقیاس مفید هستند.
  • Canvas یک پلتفرم نشر لاراول که به ویژوال سازی روند ماهانه کمک می کند، ببینید خوانندگان از کجا می آیند و چه ساعتی از روز ترجیح می دهند مطالب را بخوانند. ویژگی هایی مانند: آمار انتشار، نوشتن بدون انحراف، ادغام Unsplash، داده های اجتماعی سفارشی.

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

لاراول به عنوان فریمورک 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 تحویل به موقع و مقرون به صرفه نرم افزار را فراهم می آورد. این فریمورک مقیاس پذیر است و پیدا کردن توسعه دهندگان جدید به دلیل محبوبیت آن مشکلی ندارد.

معماری لاراول

معماری لاراول

هنگام استفاده از هر ابزاری در "دنیای واقعی"، اگر درک کنید که چگونه این ابزار کار می کند، احساس اطمینان بیشتری می کنید. توسعه برنامه هیچ تفاوتی ندارد. وقتی می فهمید که ابزارهای توسعه شما چگونه کار می کنند، با استفاده از آنها احساس راحتی و اطمینان بیشتری می کنید.

هدف از این موضوع ارائه یک دیدگاه خوب و سطح بالا در مورد چگونگی کار "فریمورک لاراول" است. با بهتر دانستن کلی فریمورک، همه چیز کمتر "جادویی" احساس می شود و با اطمینان بیشتر در ساخت برنامه های خود اطمینان خواهید کرد. اگر بلافاصله همه شرایط را درک نکردید، دل خود را از دست ندهید! فقط سعی کنید درک اساسی از آنچه اتفاق می افتد بدست آورید و با کشف سایر بخش های اسناد، دانش شما رشد می کند.

نقطه ورود همه درخواست های یک برنامه لاراول فایل public/index.php است. کلیه درخواست ها توسط پیکربندی وب سرور شما (Apache / Nginx) به این فایل هدایت می شوند. فایل index.php کد زیادی ندارد. در عوض، این فقط یک نقطه شروع برای بارگذاری بقیه فریمورک است. فایل index.php بارگذاری تعریف autoloader ایجاد شده توسط Composer و سپس نمونه ای از برنامه Laravel را از اسکریپت bootstrap / app.php بازیابی می کند. اولین اقدام انجام شده توسط خود Laravel ایجاد نمونه ای از application / service container است.

کرنل HTTP / Console

در مرحله بعد بسته به نوع درخواستی که وارد برنامه می شود، درخواست ورودی به کرنل HTTP یا کرنل کنسول ارسال می شود. این دو کرنل به عنوان مکان اصلی که از طریق آن همه درخواست ها جریان دارد، خدمت می کنند. در حال حاضر، اجازه دهید فقط روی کرنل HTTP که در app/Http/Kernel.php قرار دارد تمرکز کنیم. کرنل HTTP کلاس Illuminate \ Foundation \ Http \ Kernel را گسترش می دهد، که مجموعه ای از راه اندازها را تعریف می کند که قبل از اجرای درخواست اجرا می شوند. این bootstrappers با استفاده از خطا، پیکربندی ورود به سیستم، شناسایی محیط برنامه و سایر کارهایی را که باید قبل از درخواست انجام شود انجام می دهد.

کرنل HTTP همچنین لیستی از میان افزارهای HTTP را تعریف می کند که کلیه درخواست ها باید قبل از آنکه توسط برنامه کاربردی شوند از آن عبور کنند. این میان افزارها خواندن و نوشتن نشست HTTP را تعیین می کنند، تعیین می کنند آیا برنامه در حالت نگهداری است، تأیید نشانه CSRF و موارد دیگر. امضای روش برای روش دسته کرنل HTTP بسیار ساده است: یک درخواست دریافت کنید و یک پاسخ ارسال کنید. به عنوان یک جعبه سیاه بزرگ که نمایانگر کل برنامه شماست، از کرنل استفاده کنید. آن را به درخواست های HTTP تغذیه کنید و پاسخ های HTTP را برمی گرداند.

فراهم کننده سرویس

یکی از مهمترین اقدامات bootstrapping کرنل بارگیری فراهم کننده سرویس برای برنامه شما است. کلیه فراهم کننده سرویس برای برنامه در آرایه ارائه دهندگان فایل پیکربندی پیکربندی / app.php پیکربندی شده اند. ابتدا روش ثبت نام از کلیه providers فراخوانده می شود، پس از register تمامی ارائه دهندگان، روش boot فراخوانی می شود.

فراهم کننده سرویس وظیفه راه اندازی مجدد کلیه اجزای مختلف فریمورک مانند پایگاه داده، صف، اعتبارسنجی و مؤلفه های مسیریابی را دارند. از آنجا که آنها قابلیت راه اندازی و پیکربندی هر ویژگی ارائه شده توسط این فریمورک را دارند، فراهم کننده سرویس مهمترین جنبه کل فرآیند راه انداز لاراول هستند.

ارسال درخواست

پس از راه اندازی برنامه و ثبت نام در تمامی فراهم کننده سرویس، درخواست برای ارسال به روتر ارسال می شود. روتر Request را به یک مسیر یا کنترل کننده ارسال می کند، و همچنین هر واسطه خاصی را برای مسیر اجرا می کند.

ساختار پیش فرض برنامه Laravel در نظر گرفته شده است که یک نقطه شروع عالی برای برنامه های بزرگ و کوچک باشد. البته، شما می توانید برنامه خود را هر طور که دوست دارید سازماندهی کنید. لاراول تقریباً هیچ محدودیتی برای مکان کلاس در نظر نمی گیرد، تا زمانی که Composer بتواند کلاس را تأسیس کند.

معماری 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(ارزیابی)

مثال های لاراول (Laravel)

Database Migrations در لاراول

اول، اجازه دهید از یک Migrations برای تعریف جدول دیتابیس استفاده کنیم تا همه وظایف خود را انجام دهیم. Migrations به پایگاه داده Laravel راهی آسان برای تعریف ساختار جدول پایگاه داده و تغییرات خود با استفاده از کد PHP روان و رسا ارائه می دهد. به جای اینکه به اعضای تیم خود بگویید که به صورت دستی ستون هایی را به نسخه محلی بانک اطلاعاتی خود اضافه کنند، هم تیمی های شما می توانند به سادگی Migrations هایی را که شما به آنها کنترل می کنید، انجام دهند.

بنابراین، بیایید یک جدول بانک اطلاعاتی بسازیم که تمام وظایف ما را در خود جای دهد. Artisan CLI می تواند برای تولید انواع کلاس ها مورد استفاده قرار گیرد و در ساخت پروژه های Laravel در تایپ کردن زیادی صرفه جویی می کند. در این حالت، بیایید از دستور make: migration برای ایجاد یک Migrations پایگاه داده جدید برای جدول وظایف خود استفاده کنیم:

php artisan make:migration create_tasks_table --create=tasks

Migrations در دایرکتوری database/migrations پروژه شما قرار می گیرد. همانطور که ممکن است مشاهده کرده باشید، فرمان make: migr قبلاً شناسه خودکار افزایشی و نشانهای زمانی را به فایل Migrations اضافه کرده است. بیایید این فایل را ویرایش کنیم و یک ستون رشته اضافی برای نام وظایف خود اضافه کنیم:

<?php

use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration;

class CreateTasksTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('tasks', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->timestamps(); }); }

/** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('tasks'); } }

برای اجرای Migrations، از فرمان artisan migrate افزار مند استفاده خواهیم کرد. اگر از Homestead استفاده می کنید، باید این دستور را از درون دستگاه مجازی خود اجرا کنید، زیرا دستگاه میزبان شما دسترسی مستقیم به دیتابیس نخواهد داشت:

php artisan migrate

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

آیا این نوشته را دوست داشتید؟