آموزش لاراول از پایه

39,900 تومان
خرید این دوره

در این مجموعه ، قدم به قدم ، نحوه ساختن برنامه های وب را با Laravel 6. به شما نشان می دهم. پس از اتمام ، شما باید تمام ابزارهای مورد نیاز خود را داشته باشید. بیایید کار کنیم!

آموزش لاراول از پایه

فهرست برنامه آموزشی

  • بخش 1 پیش نیازها

    1. در یک نگاه

      مدت آموزش 2:40

      قبل از اینکه به پیچ و خم‌های لاراول بپردازیم، ابتدا بررسی کنیم وقتی که یک request وارد سیستم می‌شود، دقیقا چه اتفاقی میفتد.

    2. نصب PHP، MySQL و Composer

      مدت آموزش 3:33

      قبل از شروع کار ، ابتدا باید اطمینان حاصل کنید که نسخه های به روز PHP و MySQL در دستگاه شما نصب و در دسترس هستند. در این قسمت ، ما به بررسی چگونگی پیشبرد این موضوع می پردازیم. پس از اتمام ، می توانیم Composer را نصب کنیم.

    3. نصب کننده Laravel

      مدت آموزش 3:02

      اکنون که تنظیمات کامپوزر را داریم ، می توانیم نصب لاراول را بکشیم و آن را در سطح جهانی در دستگاه خود قابل دسترسی کنیم. با استفاده از این برنامه ، می توانید یک دستور واحد را برای ساختن یک نصب جدید Laravel اجرا کنید: Laravel new app

    4. نصب Laravel Valet

      مدت آموزش 3:18

      اگر کاربر Mac هستید ، به جای اجرای php artisan serve ، ممکن است در عوض، نصب laravel valet را انتخاب کنید. Valet یک محیط توسعه سریع و چشمگیر برای Laravel است که یک راه حل برای راه اندازی آن به شمار می‌رود.

  • بخش 2 Routing

    1. مبانی routing و views

      مدت آموزش 3:41

      وقتی که من یک فریم‌ورک جدید رو یاد میگیرم، اولین چیزی که دنبالش میرم اینه که بدونم صفحه splash اون فریم‌ورک چطوری فراخوانی می‌شود. اولین توقفگاه ماه routes/web.php است.

    2. از تابع request() helper می توان برای واکشی داده ها از هر درخواست GET یا POST استفاده کرد. در این قسمت ، ما یاد خواهیم گرفت که چگونه داده ها را از query-string واکشی کنیم ، آن ها را به یک view ارسال کنیم و سپس برای محافظت در برابر حملات احتمالی XSS ، آنها را رمزگذاری کنیم.

    3. Route Wildcard ها

      مدت آموزش 3:42

      غالباً ، شما باید روتی را بسازید که مقدار wildcard را بپذیرد. به عنوان مثال ، هنگام مشاهده یک پست خاص ، بخشی از URI باید یونیک باشد. در این موارد ، می توانیم به یک route wildcard دسترسی پیدا کنیم.

    4. Routing به Controllers

      مدت آموزش 3:01

      جالب است که ما می توانیم مسیری را برای کنترل logic هر روت فراهم کنیم ، با این حال ، ممکن است که برای پروژه های بزرگتر، به دنبال یک dedicated controller باشید.

  • بخش 3 Database Access

    1. تاکنون ، ما از یک آرایه ساده به عنوان ذخیره داده استفاده کرده ایم. این خیلی جالب نیست ، بنابراین بیایید نحوه راه اندازی database connection را بیاموزیم. در این قسمت ، ما در مورد environment variable، configuration file و query builder بحث خواهیم کرد.

    2. Hello Eloquent

      مدت آموزش 3:45

      در قسمت قبلی ، از query builder برای واکشی پست مربوطه از دیتابیس استفاده کردیم. با این حال ، گزینه دومی وجود دارد که باید آن را بررسی کنیم: Eloquent. کلاس Eloquent نه تنها همان API را برای querying از پایگاه داده شما ارائه می دهد ، بلکه مکان مناسبی برای ذخیره هر business logic است.

    3. Migrations 101

      مدت آموزش 5:23

      در قسمت قبلی ، ما به طور دستی یک database table ایجاد کردیم. با این حال ، این workflow معمولی را که در کدنویسی روزانه دنبال می کنید منعکس نمی کند. درعوض ، به migration class ها خواهید رسید. در این قسمت ، ما در مورد ویژگی های آنها و مفید بودن آنها بحث خواهیم کرد.

    4. ایجاد همه فایل های مختلف مورد نیاز به سرعت خسته کننده می شود. "بیایید یک مدل بسازیم ، و یک migration ، و یک controller." ما می توانیم هر آنچه را که نیاز داریم در یک دستور واحد تولید کنیم. در این قسمت به شما نشان خواهیم داد

    5. Business Logic

      مدت آموزش 7:36

      در صورت امکان ، کدی که می نویسید باید منعکس کننده نحوه صحبت در مورد product در زندگی واقعی باشد. به عنوان مثال ، اگر شما مدرسه ای را اداره می کنید و به روشی برای انجام تکالیف توسط دانش آموزان نیاز دارید ، بیایید این اصطلاحات را در کد کار کنیم. شاید شما باید یک Assignment model داشته باشید که شامل یک متد complete() باشد.

  • بخش 4 Views

    1. Layout Page ها

      مدت آموزش 4:11

      اگر welcome view را که با لاراول ارائه می شود مرور کنید ، شامل ساختار HTML کامل تا doctype است. این برای یک صفحه دمو مناسب است ، اما در زندگی واقعی به دنبال layout file ها خواهید بود.

    2. Integrate یک Site Template

      مدت آموزش 4:27

      با استفاده از تکنیک هایی که در چندین قسمت اخیر آموخته اید ، بیایید یک site template رایگان را در پروژه لاراول خود قرار دهیم ، به نام SimpleWork.

    3. ایجاد یک Active Menu Link

      مدت آموزش 2:15

      در این قسمت ، شما می آموزید که چگونه صفحه فعلی را در نوار پیمایش خود شناسایی و هایلایت کنید. برای این کار می توانیم از Request facade استفاده کنیم.

    4. لاراول ابزاری مفید به نام Mix - a wrapper ارائه می دهد. در این قسمت، ما workflow را به شما نشان می دهیم که هنگام کار روی frontend دنبال کنید.

    5. اجرای Dynamic Data

      مدت آموزش 6:19

      بیایید در مرحله بعدی نحوه ارائه dynamic data را یاد بگیریم. صفحه "about" از site template یی که ما از آن استفاده می کنیم حاوی لیستی از مقالات است. میخواهیم یک مدل برای اینها ایجاد کنیم ، برخی از رکوردها را در دیتابیس ذخیره کنیم و سپس آنها را به صورت dynamically در صفحه ارائه دهیم.

    6. بیایید این تمرین را با ایجاد یک صفحه اختصاصی برای مشاهده یک مقاله کامل به پایان برسانیم.

    7. solution های تمرین

      مدت آموزش 2:45

      میخواهیم تمرین قسمت قبلی مرور کنیم. برای نمایش لیستی از مقالات ، باید یک matching route ، یک controller action و view ایجاد شده برای تکرار مقالات و نمایش آنها در صفحه ایجاد کنید.

  • بخش 5 Forms

    1. هفت restful controller action وجود دارد که باید با آنها آشنا شوید. در این قسمت ، نام آنها و اینکه چه وقت به آنها نیاز دارید را بررسی خواهیم کرد.

    2. Restful Routing

      مدت آموزش 7:37

      اکنون که با resourceful controller ها آشنا شدید ، بیایید به لایه routing برگردیم و یک متد RESTful برای ساخت URI ها و برقراری ارتباط با هدف را مرور کنیم.

    3. Form Handling

      مدت آموزش 7:55

      اکنون که resourceful controller ها و HTTP را یاد گرفتید، بیایید فرمی برای ادامه مقاله جدید بسازیم.

    4. مرورگرها ، هنگام نوشتن این مقاله ، فقط انواع درخواست GET و POST را تشخیص می دهند. مشکلی نیست ، ما می توانیم با ارسال hidden input همراه با درخواست خود که به لاراول نشان می دهد کدام HTTP را واقعاً می خواهیم ، این محدودیت را مرتفع کنیم. بیایید workflow اصلی را در این قسمت مرور کنیم.

    5. قبل از اینکه به شفاف کردن کنترلر بپردازیم ، بیایید ابتدا کمی validation فرم را بررسی کنیم. در حال حاضر ، controller اهمیتی نمیده که کاربر چه نوع ورودی وارد میکند. ما هر مقدار ارائه شده را به یک property اختصاص می دهیم و سعی می کنیم آن را در دیتابیس قرار دهیم. شما هرگز نباید این کار را انجام دهید. به یاد داشته باشید: هنگام کار کردن با user-provided data ، تصور کنید که آنها مخرب هستند.

  • بخش 6 Controller Techniques

    1. Leverage Route Model Binding

      مدت آموزش 4:56

      تا حالا. ما به صورت دستی با استفاده از wildcard از URI ، یک رکورد از database واکشی می کردیم. با این وجود ، به لطف route model binding، لاراول می تواند این کوئری را برای ما به صورت خودکار انجام دهد.

    2. کاهش تکرار

      مدت آموزش 5:40

      تکنیک بعدی شما کاهش تکرار است. اگر currentArticlesController را مرور کنید ، ما request key ها را به چندین مکان ارجاع می دهیم. اکنون که مشخص شد ، یک روش مفید برای کاهش قابل توجه این تکرار وجود دارد.

    3. route های نامگذاری شده به شما امکان می دهند یک URI را به یک متغیر تبدیل کنید. به این ترتیب ، اگر روتی در نقطه ای تغییر کند ، همه لینک های شما به طور خودکار به روز می شوند ، به این دلیل که آنها به جای مسیر هاردکد ، به نسخه نامگذاری شده route مراجعه می کنند.

  • بخش 7 Eloquent

    1. بیایید اکنون به Eloquent برگردیم و بحث در مورد relationship ها را آغاز کنیم. به عنوان مثال ، اگر من یک نمونه $user داشته باشم ، چگونه می توانم تمام پروژه هایی را که توسط آن کاربر ایجاد شده اند واکشی کنم؟ یا اگر به جای آن یک نمونه $project داشته باشم ، چگونه می توانم کاربری را که آن پروژه را مدیریت می کند واکشی کنم؟ برای یک درک بیشتر، لطفا سری Eloquent Relationships Laracasts را مرور کنید

    2. میخواهیم یادگیری خود را از قسمت قبلی به آزمون بگذاریم. اگر مقاله ای با کاربر مرتبط است ، لازم است foreign key و relationship method های لازم را اضافه کنیم. ما همچنین database factorie ها و میزان مفید بودن آنها را در مرحله توسعه و تست را بررسی خواهیم کرد.

    3. در مرحله بعدی ، ما نوع رابطه "چند به چند" را کمی پیچیده تر داریم. برای نشان دادن آن، ما از مثال مشترک مقاله ها و برچسب ها استفاده خواهیم کرد. همانطور که متوجه خواهیم شد ، برای مرتبط کردن یک مقاله با بسیاری از برچسب ها ، و یک برچسب با بسیاری از مقالات ، جدول سوم لازم است.

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

    5. اکنون نحوه واکشی و نمایش رکورد از یک linking table را درک کرده ایم. در مرحله بعدی نحوه انجام insert را می آموزیم. ما می توانیم از متد attach() و detach() برای درج همزمان یک یا چند رکورد استفاده کنیم. با این حال، باید اعتبارسنجی لازم را انجام دهیم تا اطمینان حاصل کنیم که یک کاربر مخرب یک invalid id را مخفی نمی کند.

  • بخش 8 Authentication

    1. با تشکر از first-party package، رابط کاربری لاراول،که می توانید به راحتی یک سیستم registration کامل را که شامل sign up ، session handling، بازیابی رمز عبور، email confirmations و موارد دیگر است، ایجاد کنید. و بهترین قسمت این است که شما می توانید این نیاز خسته کننده و رایج را در عرض چند دقیقه انجام دهید.

    2. فرآیند Password Reset

      مدت آموزش 8:40

      در این قسمت، ما در مورد فرآیند ریست رمز عبور بحث خواهیم کرد. اگر کاربری رمز ورود خود را فراموش کند، باید یک سری اقدامات انجام شود: آنها درخواست ریست شدن می کنند. ما یک unique token آماده می کنیم و آن را با اکانت آنها مرتبط می کنیم. ایمیلی را به کاربر ارسال می کنیم که حاوی لینکی به سایت ما است. پس از کلیک، رمز را در لینک با آنچه در دیتابیس ذخیره شده است، اعتبار سنجی می کنیم. سپس به کاربر اجازه می دهیم رمز عبور جدیدی تنظیم کند. خوشبختانه ، laravel می تواند به طور خودکار از پس کل این کار برآید.

  • بخش 9 Core Concepts

    1. Collections

      مدت آموزش 11:21

      اولین مفهوم اصلی ما collection chaining است. همانطور که مطمئناً قبلاً یاد گرفته اید، هنگام واکشی چندین رکورد از یک دیتابیس، یک نمونه Collection برمی گردد. این object نه تنها به عنوان یک پوشش اطراف مجموعه نتایج شما عمل می کند، بلکه همچنین ده ها و دهها متد مفید برای دستکاری در هر پروژه ای که ایجاد می کنید به دست خواهید آورد.

    2. لاراول Cross-Site Request Forgery یا CSRFرا ارائه می دهد، اما شما دقیقاً نمی دانید که این به چه معناست. در این درس، چند نمونه از نحوه اجرای حمله CSRF و همچنین نحوه محافظت لاراول از برنامه شما در برابر آنها را نشان می دهیم.

    3. Service Container Fundamentals

      مدت آموزش 5:15

      service container لاراول یکی از ستون های اصلی کل فریم ورک است. قبل از بررسی پیاده سازی واقعی ، بیایید ابتدا یک کانتینر سرویس ساده را از ابتدا بسازیم. این به شما کمک می کند تا از آنچه در هنگام bind و resolve key رخ می دهد ، پی ببرید.

    4. اکنون که اصول یک service containe را فهمیدید ، بیایید به سراغ اجرای لاراول برویم. همانطور که خواهید دید، علاوه بر اصول اولیه، در بعضی موارد می تواند به طور خودکار object را نیز برای شما بسازد. این بدان معناست که شما می توانید آنچه را که نیاز دارید "درخواست کنید"، و لاراول تمام تلاش خود را با استفاده از PHP's reflection API برای خواندن dependency graph و ساخت آنچه شما نیاز دارید می کند!

    5. Laravel Facade ها

      مدت آموزش 13:55

      اکنون که درک اولیه ای از service container دارید ، سرانجام می توانیم به Laravel facade برویم ، که یک static interface مناسب برای همه کامپوننت های اساسی این فریم ورک فراهم می کند. در این درس ، ما ساختار اساسی ، نحوه ردیابی کلاس اصلی و زمان انتخاب را مرور خواهیم کرد

    6. Service Provider ها

      مدت آموزش 11:18

      ما دو قسمت گذشته را صرف مرور service container و facade لاراول کردیم. به سراغ service provider ها می رویم. service provider مکانی برای register binding ها در container و پیکربندی برنامه شما به طور کلی است.

  • بخش 10 Mail

    1. ارسال Raw Mail

      مدت آموزش 6:50

      ساده ترین راه برای ارسال ایمیل در لاراول استفاده از متد Mail::raw() است. در این درس، ما می آموزیم که چگونه فرم را ارسال کنیم، آدرس ایمیل ارائه شده را از درخواست بخوانیم و سپس ایمیل را برای آن شخص غیرفعال کنیم.

    2. مشاهده لاگ هر ایمیلی که در حالت development ارسال می شود مفید است، اما بیایید به استفاده بپردازیم این به ما امکان می دهد inbox ایمیل واقعی را شبیه سازی کنیم، که به خصوص پس از شروع ارسال HTML email بسیار مفید خواهد بود.

    3. تاکنون فقط موفق به ارسال یک ایمیل ساده متن شده ایم. بیایید با استفاده از mailable class های لاراول به یک HTML-driven email ارتقا یابیم.

    4. ما می توانیم با استفاده از Markdown ایمیل بنویسیم! در این درس، شما یاد خواهید گرفت که چگونه ایمیل های فرمت شده ای که توسط فریم ورک ساخته شده اند را به خوبی ارسال کنید. در مواردی که نیاز به تغییر ساختار HTML دارید ، mailable asset ها را منتشر می کنیم و نحوه ایجاد custom theme ها را بررسی می کنیم.

    5. Notifications Versus Mailables

      مدت آموزش 8:02

      تاکنون در این فصل ، ما به طور انحصاری به کلاس های Mailable برای ارسال ایمیل رسیده ایم. با این حال ، یک روش جایگزین وجود دارد که شما نیز ممکن است در نظر بگیرید. از کلاس Notification می توان برای آگاه سازی کاربر در قبال اقداماتی که در وب سایت شما انجام داده است ، استفاده کرد. تفاوت در نحوه اطلاع رسانی به کاربر است. مطمئناً ، ما می توانیم برای آنها ایمیل ارسال کنیم ، از طریق پیام متنی یا Slack notification یا حتی به عنوان کارت پستال فیزیکی به آنها اطلاع دهیم!

  • بخش 11 Notifications

    1. Database Notifications

      مدت آموزش 13:21

      اعلان یا notification ممکن است از طریق هر تعداد "channel" ارسال شود. شاید یک اعلان خاص باید از طریق ایمیل و از طریق وب سایت به کاربر هشدار دهد. در این بخش با ما همراه باشید.

    2. در اینجا یک تمرین سرگرم کننده داریم. برای این notification channel، یکی را انتخاب می کنیم: SMS messaging. ما را در تماشای این ویدئو همراهی کنید.

  • بخش 12 Events

    1. event ها راهی را برای یک قسمت از برنامه شما ایجاد می کند تا بتواند اطلاعیه ای را منتشر کند. در این قسمت ، ما نه تنها موارد ضروری را مرور خواهیم کرد ، بلکه همچنین در مورد جوانب مثبت و منفی این روش خاص برای ساخت یک برنامه بحث خواهیم کرد.

  • بخش 13 Authorization

    1. برای هر برنامه وب، برخی اکشن ها باید برای کاربران مجاز محدود شود. شاید فقط طراح سوال بتواند انتخاب کند که کدام پاسخ به سوال آنها بهترین است. در این صورت ، ما باید authorization logic لازم را بنویسیم. ما در این بخش چگونگی انجام این کار را نشان خواهیم داد.

    2. فیلترهای Authorization

      مدت آموزش 3:55

      تقریباً در برنامه شما کاربرانی وجود دارند که باید از امتیازات ویژه و دسترسی برخوردار شوند. به عنوان مثال ، مجری انجمن یا مدیر سایت را در نظر بگیرید. در این موارد ، ما می توانیم فیلترهای مجوز before و after مشخص کنیم.

    3. Ability Name

      مدت آموزش 2:22

      در اینجا یک فیچر اختیاری وجود دارد که می توانید در نظر بگیرید. اگر هنگام تأیید مجوز از کنترلرهای خود، ability name را حذف کنید ، لاراول بهترین کار را برای فراخوانی متد policy انجام می دهد. این کار را با ایجاد یک map برای restful controller action ها و متدهای مربوط به policy آنها انجام می دهد.

    4. Middleware-Based Authorization

      مدت آموزش 2:22

      اگر ترجیح می دهید authorization را از طریق controller action ها اجرا نکنید ، می توانید آن را به عنوان یک route-specific middleware هندل کنید. ما در این قسمت به شما نشان خواهیم داد.

    5. Role ها و Ability ها

      مدت آموزش 21:32

      بیایید همه چیز را یک درجه بالا ببریم. با نصب جدید لاراول، یک سیستم role-based authorization ایجاد کنیم که به ما امکان می دهد توانایی های مختلف را تحت کاربر بصورت داینامیک revoke و grant کنیم.

  • بخش 14 Final Project

    1. شما به پایان پروژه "Laravel From Scratch" رسیده اید. برای تست مهارت های خود، آخرین کار ما ساختن یک clone Twitter است که "Tweety" نام دارد. ما باید طرحی را ایجاد کنیم و برای login، follow friends، timeline و favorite posts، قابلیت های لازم را اضافه کنیم. در این قسمت ، ما با راه اندازی اولیه پروژه شروع می کنیم.

    2. طراحی Timeline

      مدت آموزش 16:41

      قبل از اینکه بخواهیم به نوشتن logic اصلی بپردازیم، بیایید پانزده دقیقه را برای طراحی صفحه timeline اصلی با استفاده از Tailwind اختصاص دهیم.

    3. ایجاد Timeline Dynamic

      مدت آموزش 12:21

      اکنون که یک طرح خوب اما استاتیک در دسترس داریم، می توانیم بخش های مختلف را داینامیک کنیم. ما با هسته اصلی برنامه خود شروع خواهیم کرد: توییت ها!

    4. ایجاد Following

      مدت آموزش 5:29

      اگر به کاربران اجازه ندهیم یکدیگر را follow کنند، یک شبیه سازی توییتر نخواهد بود. بیایید پیاده سازی آن عملکرد را شروع کنیم.

    5. گسترش Timeline

      مدت آموزش 6:10

      اکنون که قابلیت های لازم برای follow سایر کاربران Tweety را داریم، می توانیم timeline را به طور کامل گسترش دهیم تا همه پست های مربوطه را در بر بگیرد.

    6. ساخت صفحه Profile

      مدت آموزش 20:24

      بیایید صفحه پروفایل را برای هر کاربر پیاده سازی کنیم. این صفحه باید آواتار، یک بیوگرافی کوتاه و یک timeline برای توئیت های او را نشان دهد.

    7. هنگام ساخت برنامه های خود، به احتمال زیاد در موقعیت هایی قرار خواهید گرفت که به فایل های تو در تو نیاز پیدا می کنید. می خواهیم از Blade component ها استفاده کنیم.

    8. ایجاد فرم Follow

      مدت آموزش 19:10

      بیایید فرم "Follow Me" برای صفحه پروفایل ایجاد کنیم. این باید follow status را برای کاربر داده شده تغییر دهد. برای اجرای آن، ما در مورد چند روش مختلف بحث خواهیم کرد.

    9. Profile Authorization Logic

      مدت آموزش 7:30

      قبل از ساختن فرم برای ویرایش پروفایل کاربر، ابتدا باید از وجود مجوز مناسب اطمینان حاصل کنیم.

    10. File Storage و Custom Avatars

      مدت آموزش 16:10

      به عنوان بخشی از ایجاد فرم برای ویرایش profile کاربر، بیایید در آخر پشتیبانی از آواتارهای سفارشی را نیز اضافه کنیم. این به ما فرصتی می دهد تا قابلیت file storage لاراول را بررسی کنیم.

    11. در حال حاضر راهی برای browse همه کاربران وجود ندارد. برای حل این مسئله، یک صفحه "Explore" اضافه کنیم.

    12. Clean Up

      مدت آموزش 12:55

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

    13. در حالی که طبیعتاً موارد بسیار بیشتری وجود دارد که می توانیم آنها را اجرا کنیم ، اما متأسفانه باید جمع بندی کنیم. ما در پایان به بررسی کاملی از نحوه پیاده سازی سیستم like/dislike برای توییت ها می پردازیم.

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