We don't learn tools for the sake of learning tools. Instead, we learn them because they help us accomplish a particular goal. With that in mind, in this series, we'll use the common desire for a blog - with categories, tags, comments, email notifications, and more - as our goal. Laravel will be the tool that helps us get there. Each lesson, geared toward newcomers to Laravel, will provide instructions and techniques that will get you to the finish line. This version of our popular Laravel From Scratch series was recorded in 2021, and uses Laravel 8.
It's time for a new entry in our "How to Read Code" series. This season, we'll dive into the Laravel Breeze source code, taking every opportunity to peek behind the scenes to learn how and why it was constructed in this way. While it's often unnecessary to review the underlying code of the packages and tools you use, that doesn't mean you won't benefit from doing so. If you want to become a better programmer, you must learn, read, and write a lot of code. This series focuses on the reading.
This series is all about the little projects you build once you're off the clock. One topic per section, we'll toy with the fringes of PHP to, for example, blink our lights when a PHPUnit test fails. Why bother? Because it's fun! Come along and join me.
Laravel offers several options for Authentication in your applications. If you'd prefer a head start, you might reach for one of the available first-party packages that provide robust, modern scaffolding for your authentication layer. For example, Laravel Breeze is an excellent choice to get up and running quickly. If you require additional features, Laravel Jetstream offers two-factor auth, API tokens and team management. If you'd instead prefer to use your own front-end stack, you might consider Laravel Fortify as the backend implementation. In this series, we'll review how to use and customize these packages in order to fit the authentication needs of your application.
Laravel Cashier provides an expressive, fluent interface to Stripe's (and Paddle's) subscription billing services. In this series, we’ll take a look at the features of Cashier that will allow you to create the billing portion of a subscription-based SAAS app, including subscribing users to plans, authorizing with middleware, single charges, and invoices.
If you are lucky enough to build a popular community, then your reward is a never-ending onslaught of spam. It's a simple reality; there's no getting around it. In this series, I'll show you a variety of useful techniques for preventing spam at every turn. We'll review everything from basic keyword matching, to honeypots, to reCAPTCHA.
Laravel Scout is a powerful, full-text search package for your Eloquent models. Follow the basic setup instructions, and within minutes you'll be triggering lightning-fast search queries with Algolia. In this short series, come a long as I demonstrate everything you need to know.
Laravel Horizon provides a beautiful dashboard and code-driven configuration for Redis queues in Laravel. In this short series, I'll get you up and running in no time.
Laravel Telescope is an elegant debug assistant for Laravel. It provides insight on things like requests, exceptions, database queries, and so much more. In this short mini-series, I'll tell you everything you need to know.
In this series, I'll show you how to build a single-database, multi-tenant application in Laravel. Together, we'll construct our application in such a way as to ensure that data from one tenant never leaks into the results for another tenant.
Socialite provides you with a simple and convenient way to authenticate with OAuth providers like Facebook, Twitter, and GitHub. In this mini-series, I'll show you exactly how to use it in your own projects.
Laravel 8 is here! This release includes brand new application scaffolding, class-based model factories, migration squashing, time traveling, and so much more. Join me as, one topic per episode, we review everything you need to know!
As part of the Laravel 7 release, we gained access to supercharged Blade components. What's exciting about this is the fact that it can fundamentally change how you go about constructing the view layer of your applications. In this series, one component per episode, I'll show you a wide range of practical examples that you can freely use in your own projects.
In this series, we'll build a video game app that pulls data from the IGDB API and displays game information such as popular titles, coming soon, videos, and screenshots. We'll explore a variety of front-end features with Laravel and other technologies, including the HTTP client, Tailwind CSS, Livewire and Alpine.js.
In this series, we'll build a command line application to track the availability of in-demand products across any number of retailers. Perhaps you want to be notified the moment a Nintendo Switch becomes available for purchase? Let's do it!
Laravel advances to version 7 on March 3rd, 2020 with updates to Blade components, custom casting, fluent string operations, a friendly HTTP client, and much more. In this series, one episode at a time, we'll review everything you need to know.
Laravel 6 is here! Along with a fresh website design comes a variety of new features and improvements, including lazy collections, Laravel Vapor compatibility, job middleware, and so much more. In this series, one topic per episode, we'll get you up to speed in no time.
In this series, for each episode, I'll answer one Laravel-related question that has cropped up in the Laracasts community. Who knows, maybe your question will be the next one I answer in video form!
While many courses at Laracasts focus on the workflow of building something entirely from scratch, this one is a bit different. Come along as I work on the Laracasts codebase, itself. Each episode is unique. One might cover a new Vue component we need for the UI. Another episode may require that we TDD a new feature entirely. So pull up a chair and let's get to work.
Learning about queues can be a daunting task. It's not fun to be met with confusing jargon that you can't decipher. But that's what I'm here for. Let's incrementally break it all down into small steps that anyone can understand. In no time, you'll be throwing delayed jobs onto the queue like a pro.
Once your application reaches a certain size, it might prove useful to prepare a staging server. With this setup, all new features and additions would first be deployed to a testing branch for your team (or yourself). Only after you've reviewed and approved the changes would the code then be deployed to production. In this series, we'll use Laravel Forge, Hover, and Cloudflare to build and configure a staging server from scratch. We'll also discuss a few key gotchas you might run into.
In this series, come along as I build an "assets" website for Laracasts. Using Laravel as a backend, step-by-step, we'll pull in Vue and Vue Router to construct a practical and real-life single-page application.
Laravel 5.8, which released on February 26th, 2019, ships with a new Eloquent relationship, automatic policy discovery, PHPUnit 8 support, and so much more. In this series, one-by-one, we'll dig into the most important updates you need to know about.
It's time to take the techniques we learned in Laravel From Scratch, and put them to good use building your first real-world application. Together, we'll leverage TDD to create Birdboard: a minimal Basecamp-like project management app. This series will give us a wide range of opportunities to pull up our sleeves and test our Laravel chops. As always, we start from scratch: laravel new birdboard.
The latest first-party offering from the creators of Laravel is finally here. Laravel Nova is a gorgeous backend tool for configuring and administering your various database tables. In this series, Marcel Pociot will demonstrate how to get up and running with Nova as quickly as possible. From the basic installation steps, all the way up to generating metrics and custom themes, this is your one-stop shop for Nova mastery. Ready to get started?
Laravel 5.7 is now available! Along with it comes, not just the reveal of Laravel Nova, but also email verification functionality, dump-server integration, better console testing, and so much more.
Eloquent make the process of interacting with your database tables as natural and intuitive as possible. It's vital that you recognize and understand six key relationship types. Let's review them all - one episode per relationship.
In this series, guest instructor Marcel Pociot (Beyond Code) will steer you through the ins and outs of building and configuring servers with Laravel Forge. Whether you’re a seasoned veteran hoping to streamline your server workflow, or a beginner who doesn’t know where to start, Marcel will get you up to speed in no time.
Together, in this series we'll add an "Unlockable Badge" feature to the Laracasts website. Perhaps when a user reaches a certain XP threshold, they unlock a badge. Or when they reach 500 "Best Answer" slots, they earn yet another badge. You get the idea. Let's research and implement this feature using TDD from scratch.
Laravel ships with a small handful of custom front-end presets, but if you'd like to tailor the scaffolding specifically to your needs and preferences, no problem! It's easy. If you have a half-hour to spare, in this series I'll show you exactly how to tweak the configuration.
Laravel 5.6 is upon us! While it's true that this release isn't quite as flashy, there are still a number of incredibly useful new additions and updates. Let's review them together.
To improve as a developer, you must focus on three things: learning, reading, and writing. Or, in other words, learn from somebody more seasoned than you; read a lot of code; and write your own code daily. This series will focus on the reading component. Together, we'll mentally parse an open source project. How was it constructed? What are the routing conventions? How are the controllers structured?
Wouldn't it be great if you could alert the users of your application about important changes, without requiring that they manually refresh the page? What if an order status automatically refreshed itself? What if a thread could instantly render new incoming replies? All of this is a cinch if we leverage Laravel events, Pusher, and Laravel Echo.
Webpack is the most powerful and flexible asset compilation tool available today. With that power, however, comes a certain level of complexity. That's where Laravel Mix steps in. Intended for the 80% usecase, Mix wraps around webpack to make most commonly desired build tasks a cinch to activate. In this series, as the maintainer of Laravel Mix, I'll teach you everything you need to know - from the basics, to advanced configuration.
Here we go again! Currently scheduled for an August release date, we're on the verge of Laravel 5.5. With that in mind, let's get a head start on the new features and additions to the framework. As always, there's quite a few!
It's that time of year again! Laravel is on the cusp of graduating to version 5.4. Along with it comes a variety of excellent new optimizations and features. Markdown mail, higher order collection messages, Dusk, real-time facades... yes, please! In this series, I'll get you up to speed on what's new in Laravel 5.4 as quickly as possible.
You've probably known for a while now that Redis is a thing. But, like so many others, maybe you've had trouble understanding exactly when you would reach for a key-value database like this. What's wrong with just using MySQL for everything, right? Well, as you'll find, there are a number of situations when Redis emerges as the best possible tool for the job. In this series, you'll work through a number of examples to get up and running with Laravel and Redis as quickly as possible.
It's about that time again! The release of Laravel 5.3 is imminent. That means, it's finally time to dig in and see what's new. And, well, there's a lot! From directory changes, to notifications, to passports, to everything in between! This series will be refreshed every work day, so don't fall behind!
In this mini-series, we'll, from scratch, allow users to register, submit community articles and tutorials, and then vote on their favorites. Exactly like what we have here at Laracasts! While there are a number of moving parts, it should all make perfect sense, once we're done.
It's cool, we all hit road blocks from time to time. Have a web-related question that could be solved in ten minutes or less as a video? If so, tweet @laracasts, hash #helpMeLaracasts, and cross your fingers! You just might see your answer in this series.
While Laravel offers a robust, traditional authentication setup out of the box, you may find that you require unique setups for certain projects. Perhaps one application should leverage GitHub for its sign in functionality. Maybe another app only requires password-less authentication. In this series, we'll review a number of techniques for authenticating your users.
Spark, scheduled to launch on April 19th, provides the perfect starting point for your next big idea. Forget all the boilerplate and focus on what matters: your application. In this series, Taylor Otwell, the creator of Spark (and Laravel), will teach you the ins and outs of using Spark to build your next great product.
You did your best, but somehow that User object, over time, morphed into a monstrous God object. And your controllers started out nice and clean, but now... not so much. We've all been there. In this series, we'll review a number of ideas for whipping convoluted code into shape.
Popularized in the Rails world, Russian Doll caching is an interesting approach, where you create nested fragment caches for your view logic. If you then link the keys for each of these cached items to the model's "updated at" timestamp, what you get is easy caching for your view logic, and automatic cachebusting whenever the model is updated. In this series, we'll build a custom package from scratch to offer this very functionality.
Given the number of testing tools and resources available to PHP developers, it's no wonder why so many developers feel overwhelmed. In this series, we'll learn the ins and outs of PHPUnit testing, while working within your familiar Laravel application structure.
It's about that time again. Laravel 5.2 is on its way (possibly in January, 2016), with a variety of useful new additions. Let's get ahead of the game, and begin reviewing what's new.
When we want to broadcast events on our server to the client, how exactly do we do that? Well, there's a number of ways to tackle it, including using a dedicated service like Pusher. However, in this mini-series, we'll wire everything up on our own, while leveraging Node, Redis, and Socket.io. Sound fun?
For any Laravel user, a solid understanding of Eloquent is crucial. In this series, we'll review a number of key techniques for your toolbelt.
Laravel 5.1 includes a variety of welcomed new features. Everything from broadcasting events, to massively improved testing facilities, to LTS support. As always, Laravel is setting the curve with this new release. Let's breeze through the new features that you'll be enjoying.
Made your way through Laravel 5 Fundamentals yet? Nice job! It's time to dig a bit deeper. In this series, not only will we review higher level features, such as using the Scheduler component and dispatching commands and events, but we'll also often peak behind the scenes to figure out how each piece fits together.
Envoyer deploys your PHP applications with zero downtime. Just push your code, and let Envoyer deliver your application to one or many servers without interrupting a single customer. In this series, we'll discuss each feature of Envoyer, demonstrating how to use them with a sample project.