Master Laravel for Beginners Intermediate
Laravel is becoming the most popular choice among PHP developers these days. It's easiest to start with, most fun to use and very performant tool and ecosystem of tools, that just let's you get the job done. Let's be honest, Web Development became Rocket Science. Before you set up your environment, all the required libraries, tools and settings - it can be a week before you can write a "Hello World" program. Laravel is different. It just works. Out of the box, with sensible defaults.
More
It let's you use all modern techniques and tools of Web Development with ease.
Learn Laravel with this brand new course covering Laravel from A-Z for beginners!
Let's see:
Sending E-mails? Checked
Service Container? Checked
Queues and Background Processing? Checked
Web Sockets? Checked
Powerful Database Abstraction? Checked
Database Migrations? Checked
Database seeding (generating fake data)? Checked
Powerful MVC abstraction? Checked
Powerful Filesystem abstraction (local file system, Amazon S3)? Checked
Caching (Redis, Memcached)? Checked
Handling sessions? Checked
Serializing to JSON? Checked
Authentication (User Registration, Logging in)? Checked
Authorization (User Permissions)? Checked
Event based applications? Checked
The best thing about that is this is not only a powerful framework, it's actually easy to use and understand, even by beginners. I've created this course with beginners in mind. I explain the topics the way, that you only learn about something when you are ready for it. It's not overwhelming, we will cover the topics in a very specific order, so when you will start a new topic, you will already know everything to understand the concept at hand perfectly.
Let's have a break with me talking and see what my current students have to say about my courses (those are real reviews of my courses publicly visible here on Udemy!):
First:
"Amazing course! In-depth explanations, perfect talking pace, talks slow and is direct to the point. I had no previously knowledge in Symfony before starting, and this course gave me the confidence to start developing real world apps using Symfony. You will learn a lot of the Symfony framework, and some other cool techniques like Ajax Calls, Testing, Server configuration and Continous Deployment of your code."
Second:
"This is a Fantastic Course for Symfony exceeds expectations !!
Piotr is an experienced, knowledgeable and serious developer.
This course not only helped me to learn the inner workings of Symfony but also improve my OO php syntax, improve on git, get a better understanding of development stages, introduced me to cloud deployment ... even CI.CD.
From where I stand as a beginner, is a mini MVC developer course.
Couldn't recommend it enough.
You will certainly learn.
Thanks Piotr."
Third:
"Did the instructor write Symfony? He is very very knowledgeable."
Fourth:
"This guy is by far the best instructor I've ever come across. I took his other Symfony 4 course and advanced my understanding of the Framework more in a week than I have in the past year.
This course has filled a ton of gaps. He understands the complex learning curve and it's relationship to the content he covers thoroughly... a rarity in teaching, never mind coding complex Frameworks.
Just stick with the course.. you'll have that "Aha!" moment.
I'm working on my own Symfony 4 Framework based project(s) as I take this course... between Piotr, Github, and Google... its getting done!
Two of the most effective courses I've ever taken. I can't wait for what he puts out next."
I think it's the right time to give the same experience to anyone wanting to learn Laravel!
If you don't want to waste your time, this 27+ hours course would be the most productive week you will spend. I'm sure you will feel very comfortable with Laravel after that time.
Now, I'll be honest with you guys - I'm not a very talkative person. I only say what needs to be said. I won't be wasting any of your time. What I mean, is that this 27+ hours is what I think you need, no more, and no less.
Take a look at the curriculum, see some free preview videos. If for any reason you will be unhappy with your purchase, there is a 30 day Money Back Guarantee (No questions asked!).
- Basic PHP and Object Oriented Programming understanding
- Any Novice PHP developer without previous framework exposure
- Anyone who knows other PHP frameworks and would like to learn Laravel
What you'll learn:
- Master Eloquent, Controllers, Views and all the basics
- Advanced features like Queues, Polymorphic relationships, Service Container
- Learn all the theory while building a real application as you progress!
- Setting up PHP with Apache on Windows and Mac
- How to use Visual Studio Code effectively
- Creating APIs, serializing data, API resources and API testing
- Routes and Controllers
- Laravel Tinker - command line playground to Laravel
- Blade templates
- Blade componenets
- Creating Forms, CSRF tokens
- One to One, One to Many, Many to Many relationships
- Polymorphic relationships
- Testing
- Local and Global Eloquent Query Scopes
- Database migrations
- Database seeding and factories
- Authentication (Guard)
- Authorization (Policies and Gates)
- Authorization
- Caching
- How to use queues
- Files and file uploads
- How to send e-mails
- Observers, Events, Listeners and Subscribers
- Localization
- Services, Service Container, Contracts and Facades
- Using Traits in Laravel - SoftDeletes and creating your own!
Watch Online Master Laravel for Beginners Intermediate
# | Title | Duration |
---|---|---|
1 | Welcome to the Course! | 03:49 |
2 | How to Get Help? | 04:46 |
3 | Source Code of The Course! | 04:19 |
4 | Visual Studio Code Recommendations | 05:16 |
5 | What is Laravel? | 02:17 |
6 | Setting Up for Windows! - Section Introduction | 00:22 |
7 | Installing PHP 8.2 on Windows | 05:51 |
8 | Installing Composer on Windows | 02:49 |
9 | Installing and Running Docker (for MySQL etc.) on Windows | 03:07 |
10 | Installing Node.js on Windows (Required Later!) | 03:04 |
11 | Setting Up for Mac! - Section Introduction | 00:32 |
12 | Installing the Homebrew Package Manager | 01:49 |
13 | Installing PHP 8.2 on Mac | 02:28 |
14 | Installing Composer on Mac | 01:53 |
15 | Installing and Running Docker (for MySQL etc.) on Mac | 02:42 |
16 | Installing Node.js on Mac (Required Later!) | 02:26 |
17 | Project #1 - Section Introduction | 01:42 |
18 | Creating Laravel Project | 17:00 |
19 | All About Routing | 14:43 |
20 | Blade Templates | 09:09 |
21 | Blade Directives | 13:50 |
22 | Layouts Using Template Inheritance | 17:50 |
23 | Running a MySQL Database and Client Using Docker | 05:33 |
24 | Connecting to the Database From Laravel | 06:54 |
25 | Models and Migrations | 13:03 |
26 | Model Factory and Seeder | 15:37 |
27 | Model and Reading Data | 12:25 |
28 | Forms and CSRF Protection | 13:06 |
29 | Validating and Storing Data | 09:31 |
30 | Sessions, Errors & Flash Messages | 10:10 |
31 | Edit Form | 10:11 |
32 | Keeping Old Values in the Form | 03:09 |
33 | Reusability (Route Model Binding Form Requests, Mass Assignment) | 17:21 |
34 | Deleting Data | 04:54 |
35 | Reusing Blade Code - Subviews | 08:55 |
36 | Adding Pagination | 04:30 |
37 | Toggling Task State | 09:49 |
38 | Adding Styling with Tailwind CSS | 12:48 |
39 | Styling the Task Page | 17:05 |
40 | Styling Forms | 10:55 |
41 | Styling Flash Message & Using Alpine.js | 15:06 |
42 | Project #2 - Section Introduction | 02:15 |
43 | Creating the Book Review Project and Setting Up | 08:01 |
44 | Defining the One to Many Relationship | 11:09 |
45 | Factory & Seeder | 14:59 |
46 | Querying & Associating Related Models | 16:41 |
47 | Local Query Scopes | 11:19 |
48 | Aggregations on Relations | 06:54 |
49 | Highest Rated & Popular Books | 06:48 |
50 | Getting Books with Recent Reviews | 16:34 |
51 | Controllers & Resource Controllers | 12:11 |
52 | Displaying the Book List | 18:11 |
53 | Filter Books by Title - Adding the Form | 07:44 |
54 | Popular or Highest Rated - the View | 14:38 |
55 | Popular or Highest Rated - the Logic | 11:05 |
56 | One Book Page | 09:59 |
57 | Cache and Caching Queries | 12:06 |
58 | Invalidating Cache | 17:57 |
59 | Rating and Review Count on All Pages | 13:19 |
60 | Blade Components - Star Rating Component | 11:40 |
61 | Scoped Resource Controller - Adding a Review | 17:53 |
62 | Rate Limiting | 12:58 |
63 | Project #3 - Section Introduction | 01:31 |
64 | Creating the REST API Project | 18:38 |
65 | Seeding Data for the REST API | 14:41 |
66 | Postman REST Client Crash Course | 15:28 |
67 | Storing Data and Validation | 14:39 |
68 | Updating and Deleting Data | 09:12 |
69 | API Resources - Controlling JSON Response | 14:09 |
70 | Attendees and Pagination | 15:45 |
71 | Optional Relation Loading | 12:50 |
72 | Universal Relation Loading Trait | 17:50 |
73 | Loading Attendee Relations | 02:50 |
74 | Setting Up Authentication Using Sanctum | 18:52 |
75 | Protecting Routes | 10:43 |
76 | Automatically Adding Token in Postman Requests | 03:41 |
77 | Revoking Tokens and Signing Out | 07:44 |
78 | Authorization with Gates | 18:05 |
79 | Authorization with Policies | 15:47 |
80 | Manual Authorization with Policies | 01:53 |
81 | Reminding About Events - Custom Artisan Command | 13:54 |
82 | Reminding About Events - Task Scheduling | 09:18 |
83 | Reminding About Events - Notifications and Email Sending | 14:24 |
84 | Reminding About Events - Queues | 09:44 |
85 | Throttling the API | 07:12 |
86 | Project #4 - Section Introduction | 01:58 |
87 | Creating the Project and Setting Up Livewire | 06:11 |
88 | Creating Models and Migrations for the Poll App | 12:19 |
89 | Your First Livewire Component | 08:23 |
90 | How Livewire Works? | 08:50 |
91 | Actions in Livewire | 08:31 |
92 | Editing Poll Options | 06:21 |
93 | Creating a Poll | 07:43 |
94 | Refactoring the Poll Storing Code | 06:28 |
95 | Validation in Livewire | 10:40 |
96 | Listing Polls Component | 08:10 |
97 | Events - Communication Between Components | 05:47 |
98 | Voting in Polls! | 04:33 |
99 | Project #5 - Section Introduction | 04:15 |
100 | Creating the Job Board Project and Job Model | 14:37 |
101 | Adding Laravel Debugbar | 04:01 |
102 | Setting Up Tailwind CSS using Vite (and Node) | 13:48 |
103 | Layouts Using Components | 08:41 |
104 | Jobs Page & Card Component | 10:43 |
105 | Jobs Page: Tag Component & Job Info | 11:23 |
106 | Job Page: Job Card & Link Button Components | 12:52 |
107 | Breadcrumbs Navigation | 16:26 |
108 | Filtering Jobs: Tailwind Form Plugin & Text Inputs | 16:21 |
109 | Filtering Jobs: Form & Searching for Text in Job Posts | 09:21 |
110 | Filtering Jobs: Min & Max Salary | 07:57 |
111 | Filtering Jobs: Radio Button Filters (Select One Option of Many) | 13:02 |
112 | Filtering Jobs: Radio Group Component | 08:21 |
113 | Filtering Jobs: Configuring Labels and Talking About Arrays in PHP | 13:41 |
114 | Filtering Jobs: Clearing the Input | 16:16 |
115 | Refactor Time: Gradient Background, Styling Buttons, Adding Alpine.js | 13:17 |
116 | Refactor Time: Plain Vanilla JavaScript to Alpine.js | 08:31 |
117 | Refactor Time: Refactoring Filtering Backend Logic | 15:24 |
118 | Employer: Model, Migration, Relations | 11:15 |
119 | Employer: Factory & Seeder | 08:28 |
120 | Employer: Searching By Employer Name | 06:27 |
121 | Employer: Other Employer Jobs on the Job Page | 08:01 |
122 | Authentication: The Controller | 05:15 |
123 | Authentication: Sign-in Form | 12:58 |
124 | Authentication: Sign-in Logic | 09:56 |
125 | Authentication: Logging Out | 14:17 |
126 | Applying for Jobs: Model, Factory, Relations & Migration | 09:26 |
127 | Applying for Jobs: Controller, Routing and Application Form | 11:26 |
128 | Applying for Jobs: The Logic | 10:12 |
129 | Applying for Jobs: The Job Policy | 09:49 |
130 | Applying for Jobs: Did I Already Apply? | 07:12 |
131 | My Applications: Controller and View | 10:27 |
132 | My Applications: Applicant Count, Average Asking Salary | 10:35 |
133 | My Applications: Cancelling Applications | 08:25 |
134 | File Uploads: Understanding File System & Configuring Disks | 12:01 |
135 | File Uploads: Uploading Files | 11:26 |
136 | Refactor Time: Displaying Input Errors | 13:02 |
137 | Refactor Time: Label Component | 06:51 |
138 | Refactor Time: Flash Errors | 01:40 |
139 | Employer: Register as an Employer | 13:18 |
140 | Employer: Middleware Checking for Permissions | 12:20 |
141 | Employer: Adding Jobs Form | 16:15 |
142 | Employer: Adding Jobs Logic | 11:44 |
143 | Employer: Job List | 14:27 |
144 | Employer: Editing Job Offer | 12:27 |
145 | Employer: Job Policy | 14:30 |
146 | Employer: Soft Deletes | 10:36 |
147 | Employer: Soft Deletes - Querying for Trashed Records | 05:55 |
148 | Where Are We Right Now? | 01:53 |
149 | Welcome to the Course! | 02:10 |
150 | About Laravel Versions (OPTIONAL) | 01:49 |
151 | Setup Recommendations and Course Prerequisites | 03:52 |
152 | Code Editor: Visual Studio Code Setup and Recommendations | 06:00 |
153 | Course Source Code | 02:24 |
154 | Additional Learning Resource (Cheat Sheet, Diagrams) | 01:42 |
155 | Windows - Setting Up XAMPP (PHP/Apache/MySQL) | 03:16 |
156 | Windows - PHP in the Command Line | 02:37 |
157 | Windows - Composer | 01:54 |
158 | Mac - Setting Up XAMPP (PHP/Apache/MySQL) | 02:59 |
159 | Mac - PHP in the Command Line | 04:27 |
160 | Mac - Composer | 01:40 |
161 | Windows - Setting Up Virtual Host in Apache | 04:22 |
162 | Windows - Setting Up Host on the System | 01:42 |
163 | Mac - Setting Up Virtual Host in Apache | 03:21 |
164 | Mac - Setting Up Host on the System | 02:17 |
165 | Laravel Project Structure Overview | 03:25 |
166 | Artisan Command | 03:11 |
167 | Understanding Routing in Laravel | 01:57 |
168 | Defining Routes | 03:05 |
169 | Managing and Naming Routes | 02:54 |
170 | Route Parameters | 03:27 |
171 | Optional Route Parameters | 03:40 |
172 | Constraining Possible Route Parameters Values | 04:12 |
173 | Understanding Templating, Views and Blade | 05:27 |
174 | Template Inheritance and Layouts | 07:49 |
175 | Passing and Rendering Data in Templates | 04:58 |
176 | Simple View Rendering Routes | 02:06 |
177 | Conditional Rendering | 03:29 |
178 | Conditional Rendering Alternatives | 03:27 |
179 | Loops in Templates | 06:22 |
180 | More Control Inside Loops | 06:16 |
181 | Partial Templates (Including Templates) | 04:11 |
182 | Partial Templates in Loops | 02:52 |
183 | Responses, Codes, Headers, and Cookies | 04:59 |
184 | Redirect Responses | 04:19 |
185 | Returning JSON | 01:21 |
186 | Returning File Downloads | 02:29 |
187 | Grouping Routes | 03:23 |
188 | Request Input (Reading User Input) | 04:33 |
189 | Request Input - An Overview of Options | 01:45 |
190 | Middleware - Running Code Before & After Request | 04:20 |
191 | Controllers | 05:09 |
192 | Single Action Controllers | 01:57 |
193 | Resource Controllers | 01:32 |
194 | Implementing a Resource Controller | 05:40 |
195 | Configuration and Environments Overview | 03:47 |
196 | Configuring the Database Connection | 03:29 |
197 | Databases Bird's Eye Overview | 01:46 |
198 | Migrations Overview | 02:41 |
199 | Creating and Running Migrations | 05:06 |
200 | Understanding Eloquent ORM Models | 02:09 |
201 | Models - Creating and Updating, Introducing Tinker | 03:20 |
202 | Models - Retrieving Single Model | 02:12 |
203 | Models - Retrieving Multiple Models and Collections Overview | 02:17 |
204 | Models - Using the Query Builder | 04:15 |
205 | Practical - List of Blog Posts and Single Blog Post | 03:22 |
206 | Forms Markup | 04:15 |
207 | Cross Site Request Forgery Explained | 04:31 |
208 | Forms - Storing Submitted Data | 03:37 |
209 | Forms - Input Validation | 04:02 |
210 | Forms - Displaying Validation Errors | 02:51 |
211 | Forms - Form Request Classes | 03:22 |
212 | Session Flash Messages | 02:16 |
213 | Forms - Old Input Helper | 01:30 |
214 | Forms/Models - Model Mass Assignment | 05:18 |
215 | CRUD - Edit Form | 08:58 |
216 | CRUD - Update Action | 03:40 |
217 | CRUD - Deleting Using Forms | 04:52 |
218 | CRUD - Deleting Models | 03:02 |
219 | Introduction to Laravel Mix | 03:31 |
220 | Installing Bootstrap CSS Framework | 02:15 |
221 | Using NPM and Compiling Assets With Mix/Webpack | 03:30 |
222 | Including Assets in Views | 01:31 |
223 | Versioned Assets (Cache Improvements) | 02:58 |
224 | Introduction to Bootstrap CSS | 02:14 |
225 | Understanding CSS Flexbox in General and in Bootstrap | 03:24 |
226 | Layout Grid and Styling Header Bar | 08:04 |
227 | Styling Forms | 02:56 |
228 | Styling Post List Page | 02:57 |
229 | Styling Single Post Page | 03:14 |
230 | Styling Flash Messages and Error Messages | 01:55 |
231 | Testing | 07:04 |
232 | Testing configuration and environment | 04:51 |
233 | Writing first functional test | 07:18 |
234 | Testing database interactions | 08:14 |
235 | Testing store() action (model creation) | 05:36 |
236 | Testing for failure | 07:42 |
237 | Testing update() action (model updates) | 07:21 |
238 | Testing delete() action (model deletion) | 05:20 |
239 | One to One relation with migration | 08:48 |
240 | One to One assigning relationship | 08:45 |
241 | One to One querying relationship | 07:39 |
242 | One to Many relation with migration | 07:23 |
243 | One to Many assigning relationship | 05:59 |
244 | One to Many querying relationship | 05:25 |
245 | Lazy Loading vs Eager Loading | 07:21 |
246 | Querying relationship existence | 07:44 |
247 | Querying relationship absence | 03:57 |
248 | Counting related models | 05:12 |
249 | Using withCount() in practice (fetching count of comments) with test | 05:13 |
250 | Model Factory introduction | 12:06 |
251 | Model Factory states | 14:54 |
252 | Model Factory callbacks (afterCreating, afterMaking) | 08:41 |
253 | Application: Implementing comment list | 06:52 |
254 | Authentication overview | 12:26 |
255 | How user registration works in Laravel | 15:39 |
256 | Guard component and how logging users in works | 16:58 |
257 | Custom registration form and Auth routes | 07:46 |
258 | Formatting validation errors | 07:50 |
259 | RedirectIfAuthenticated middleware | 03:16 |
260 | Log-in form with "Remember Me" feature | 07:13 |
261 | Logging out, @guest directive, debugging CSRF token errors | 11:43 |
262 | Retrieving the currently authenticated user | 04:32 |
263 | Protecting routes (requiring authentication) | 05:13 |
264 | Testing routes that require authentication | 10:21 |
265 | Refreshing database, database foreign keys and existing data | 14:46 |
266 | Problem: SQLite test database NOT NULL problem | 02:32 |
267 | Database seeding basics | 05:38 |
268 | Using Model Factory inside Seeder | 05:44 |
269 | Model relations inside seeder | 10:21 |
270 | Individual seeder classes | 08:52 |
271 | Making seeder interactive | 11:53 |
272 | Deleting related model using model events | 06:04 |
273 | Deleting related models using cascading | 05:23 |
274 | Soft deletes | 04:59 |
275 | Soft deletes querying | 06:44 |
276 | Restoring soft deleted model | 10:43 |
277 | Testing soft deleted models | 03:06 |
278 | Authorization introduction | 06:15 |
279 | Introduction to Gates | 08:48 |
280 | Using authorize() helper | 02:52 |
281 | Verifying permissions of the user | 04:13 |
282 | Admin users and overriding permissions | 13:11 |
283 | Policies introduction | 11:38 |
284 | Policy or Gate? | 14:02 |
285 | Verifying permissions in Blade templates | 05:47 |
286 | Using middleware to authorize routes | 10:38 |
287 | Application: updating tests | 06:25 |
288 | Application: setting user_id for the new BlogPost | 03:49 |
289 | Global Query Scopes introduction | 09:06 |
290 | Global Query Scopes and potential issues | 10:41 |
291 | Local Query Scopes introduction | 10:01 |
292 | Practical: Local Query Scope - most commented posts | 09:57 |
293 | Practical: Local Query Scope - most active users | 10:05 |
294 | Practical: Local Query Scope - most active users last month | 12:17 |
295 | Practical: Global Query Scope - admin can see deleted posts | 15:31 |
296 | Blade Components introduction | 09:34 |
297 | Component aliases | 03:34 |
298 | Conditional rendering in Component | 05:32 |
299 | Practical: creating reusable component for dates | 08:20 |
300 | Complicated example of conditional rendering | 10:11 |
301 | Application: Fixing an issue with HAVING clause | 02:08 |
302 | Caching introduction | 08:02 |
303 | Laravel Debugbar | 10:32 |
304 | Storing data in cache | 11:16 |
305 | Removing from cache | 07:18 |
306 | Cache facade | 04:04 |
307 | Practical: using cache as storage | 06:46 |
308 | Practical: using cache for storage implementation | 13:27 |
309 | Using and setting up Redis as cache storage | 10:27 |
310 | Cache tags introduction | 06:11 |
311 | Practical: using cache tags | 08:28 |
312 | ManyToMany introduction | 02:40 |
313 | ManyToMany migration | 05:38 |
314 | Defining ManyToMany on models | 03:38 |
315 | Associating models in ManyToMany | 10:36 |
316 | Querying the ManyToMany relation and Pivot tables | 07:31 |
317 | Practical: displaying the list of tags using Blade component | 06:17 |
318 | Practical: list of blog posts by tag | 10:23 |
319 | Blade View Composers | 08:40 |
320 | View Composer with @include | 08:00 |
321 | ManyToMany seeding | 14:05 |
322 | Practical: User to Comment OneToMany relation and migration | 07:02 |
323 | Practical: comments form and reusable errors component | 09:06 |
324 | Route Model Binding | 13:34 |
325 | Eager loading nested relationships | 08:32 |
326 | Converting repeating queries to query scopes | 03:38 |
327 | File Storage introduction | 09:50 |
328 | File upload form | 02:18 |
329 | Handling file uploads | 09:07 |
330 | Using Storage facade to store files | 10:42 |
331 | Getting the URL of stored file | 10:03 |
332 | Practical: Image model, OneToOne relation and migrations | 08:23 |
333 | Uploaded image URL | 06:35 |
334 | Practical: Displaying uploaded image and styling | 05:21 |
335 | Deleting files | 05:07 |
336 | Validating uploaded files (size, type, dimensions) | 06:20 |
337 | Section intrduction | 02:14 |
338 | Practical: Scaffolding UserController and UserPolicy, using authorizeResource | 12:14 |
339 | Practical: Views for showing/editing user profile | 13:48 |
340 | OneToOne Polymorphic explained | 04:07 |
341 | OneToOne Polymorphic migration | 06:28 |
342 | OneToOne Polymorphic defining relation | 02:43 |
343 | OneToOne Polymorphic associating | 04:03 |
344 | Practical: OneToOne Polymorphic with BlogPost and Image | 13:03 |
345 | OneToMany Polymorphic explained | 02:04 |
346 | OneToMany Polymorphic migration & relation | 06:16 |
347 | OneToMany Polymorphic associating | 09:56 |
348 | Practical: OneToMany Polymorphic views | 14:22 |
349 | Practical: Running tests on MySQL database | 07:29 |
350 | OneToMany Polymorphic seeder | 07:18 |
351 | ManyToMany Polymorphic explained | 05:49 |
352 | ManyToMany Polymorphic migration | 14:53 |
353 | ManyToMany Polymorphic relations | 05:13 |
354 | Understanding model Traits | 04:21 |
355 | Creating Taggable model trait | 19:16 |
356 | Development setup for sending emails | 06:22 |
357 | The Mailable class explained | 10:19 |
358 | Rendering e-mail content and e-mail sending | 10:28 |
359 | Attaching files & data to e-mails | 10:40 |
360 | Embedding an image inside the e-mail | 05:23 |
361 | Markdown Mailable classes explained | 04:56 |
362 | Creating the Markdown Mailable class | 09:23 |
363 | Custom Markdown e-mail component and styling | 07:09 |
364 | Rendering e-mail previews in browser | 02:12 |
365 | Queues and background processing introduction | 08:14 |
366 | Configuring queues, creating and running the first job | 10:08 |
367 | Optional e-mail queuing and execution delay | 05:19 |
368 | Dealing with failed jobs | 09:55 |
369 | Creating and dispatching custom jobs | 06:08 |
370 | Implementing custom job that dispatches other jobs | 17:06 |
371 | Rate Limiting queues | 16:05 |
372 | Named queues and prioritizing | 06:16 |
373 | Model Observers | 11:07 |
374 | Events and Listeners | 08:53 |
375 | Practical: Custom Event and Listener | 10:31 |
376 | Second example of Event and Listener | 09:52 |
377 | Logging basics in Laravel | 07:10 |
378 | Handling built-in Laravel events with Subscriber | 08:22 |
379 | Localization introduction and demo | 04:42 |
380 | Configuring locale and translation overview | 04:41 |
381 | Translating plural forms, passing data | 13:48 |
382 | Storing translations in JSON | 05:51 |
383 | Translating the application | 07:48 |
384 | Storing user preffered language in database | 11:38 |
385 | Creating custom Locale Middleware | 10:53 |
386 | Adding language to URL through Apache configuration | 09:34 |
387 | What is a Service and creating a custom one | 07:08 |
388 | Service Container in practice | 09:57 |
389 | Basic Dependency Injection | 08:16 |
390 | Dependency Injection and Contracts | 12:17 |
391 | Contracts explained | 10:44 |
392 | Facades explained | 07:48 |
393 | Postman - a quite long introduction | 16:49 |
394 | How Model serialization works | 05:59 |
395 | Hiding model attributes | 04:49 |
396 | Serializing model relations | 05:46 |
397 | API Resources introduction | 09:36 |
398 | Serializing model relations using a Resource class | 04:34 |
399 | Limiting serialization only to eager loaded relations | 03:02 |
400 | Conditional serialization of properties | 03:24 |
401 | API routes and controllers | 14:41 |
402 | Practice defining API routes | 16:49 |
403 | Returning a resource collection and response wrapping | 04:59 |
404 | Collection pagination | 03:51 |
405 | Collection pagination and custom parameters | 04:24 |
406 | Storing a new resource | 07:40 |
407 | API Tokens explained and implemented | 15:33 |
408 | Returning one, updating and deleting resources | 08:56 |
409 | Handling 404 (resource not found) | 09:39 |
410 | API Authorization | 16:19 |
411 | Testing API GET methods, verifying JSON structure | 11:25 |
412 | Testing API GET methods, verifying JSON structure II | 08:09 |
413 | Test API storing (POST) resources, authentication and validation | 10:18 |