25 Free PHP & Laravel Courses
People who start learning backend development give up in the first month, and this is hardly common knowledge since it’s very difficult to master. They abandon it because they waste three weeks trying to find a starting point, they purchase a course that is outdated, they fail to get going before they start adding some useful line of code.
There’s no need to go anywhere for that. The best free PHP Laravel Courses are created by the creators of PHP Laravel itself. The key is to know them and the sequence.
Both old and new PHP websites continue to serve a large portion of the web, ranging from small business websites and content management systems to serious web applications. It teaches you server-side code, how forms, sessions and databases work together, and how to assemble dynamic Web sites. Laravel provides an elegant solution on top of PHP and handles the repetitive stuff, routing, controllers, Blade templates, database access via Eloquent, authentication and validation, queues, testing and deployment.
Below are 25 free PHP courses, 25 free Laravel courses, documentation and tutorials for beginners and working PHP developers that want to learn from the basics of backend development or full stack development. Some of them are not traditional courses, but official documentation and learning paths; I’ve marked them with the name “not courses”. I have also marked where the learning material is free, but a certificate or some feature of the platform might require payment.
If you’re completely new, follow the first 5 and then use the remaining ones as a reference shelf. If you already know some PHP then just go ahead to the Laravel entries, and return to the language pages when you need to.
Note: Course availability, certificates, badges and paid add-ons are subject to change on these platforms very frequently. Some have no entry or exit fees. Some provide free learning content and then take payment for the exam or a hard copy certificate. Below all the entries are marked as to which is which but always checks on the platform before investing their time in it.
1. PHP Fundamentals
- Provider: SQLBolt
- Level: Beginner
- Type: Interactive Course / Practice s
- Cost: Free
It’s an official mini-course from Laravel Learn designed to teach you PHP before interacting with the framework. It’s 10 short videos, but it won’t get caught up in old habits, it will focus on the things you’ll encounter in Laravel projects. Each lesson is short enough, that you can get one done during a lunch break and feel like you made it.
It is suitable for people who are familiar with HTML and CSS, but do not have any experience with serverside coding yet. If you are a PHP programmer who writes PHP code daily then you can skip it, but the modern syntax lessons will be useful. One of the most frequent errors is merely watching and not actively retyping each example, so keep an editor open to retype each one.
You will learn: PHP fundamentals, variables and data types, arrays, functions, control structures, classes, object oriented PHP, modern PHP features and configuration of your PHP development environment.
2. Getting Started with Laravel
- Provider: Laravel Learn
- Level: Beginner
- Duration: about 2 hours
- Cost: Free
In this you create an entire application from scratch. In the official bootcamp you build Chirper, a little microblogging website like Twitter, in 13 lessons. You cover project setup, routing, views, database, databases, Eloquent, forms, authentication and deployment. By the end, other people will be able to see what you’ve made as a product of the tutorial – which is nice compared to finishing a tutorial with nothing to show for it.
It will work best if you have some PHP coding experience already. The isolated feature tutorials do not show you how the pieces of Laravel connect as does building one working project. After you’re done, attempt to add another characteristic that was not taught by the course such as editing an article or searching by key word. That added effort is where the learning truly takes place.
You will learn: Laravel installation, Routes, Controllers, Blade, Database migrations, Eloquent, Forms, Validation, Authentication, CRUD and Deployment.
3. PHP Manual: Getting Started
- Provider: PHP.net
- Level: Beginner
- Type: Official Documentation / Tutorial
- Cost: Free
The PHP Manual has an official Getting Started section for people who are new to PHP. It’s a description of what PHP is, what it can do and a step-by-step walk-through of a simple first tutorial, followed by installation and configuration. The writing is straightforward and readable – no overwhelming jargon or technical mumbo-jumbo on day one.
If you want to learn directly from the source then start here. It’s also the resource you’ll return to long after your beginning days have passed. Remember that it is documentation, not a course and will not walk you through a full project. If you use it in conjunction with a video course such as the first two, you’ll have the explanation and the practice.
You will learn: What PHP is, PHP Basic syntax, simple programs, simple installation, server side programming and PHP configuration.
4. PHP Language Reference
- Provider: PHP.net
- Level: Beginner to Advanced
- Type: Official Documentation / Tutorial
- Cost: Free
The Language Reference provides detailed information on the syntax and the basic constructs of PHP: types, variables, constants, operators, control structures, functions, classes and objects, namespaces, enumerations, errors and exceptions. The vast majority of pages include short code examples so that it is easier to see how a feature will affect the site rather than just read about it.
Beginners can consult it when they don’t understand how something works, while experienced programmers can use it as a reference when troubleshooting or checking their code. As it’s part of the PHP project, it’s safe and trusted. However, reading it from front to back is not the best idea. It is best used as a reference guide. If a tutorial talks about something such as namespaces or enumerations, and you don’t know what they are, then simply open the related page here for a definitive explanation.
You will learn: PHP syntax, variables, data types, arrays, operators, functions, classes and objects, namespaces, enumerations and error handling.
5. PHP Classes and Object-Oriented Programming
- Provider: Laravel Learn
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Laravel Learn is a video lesson and learning resource that introduces the platform’s features and core concepts and provides an introduction to the framework.Laravel Learn is a free video lesson and learning resource that teaches about the features and core concepts of the platform and introduces the framework.
Laravel is very class-oriented. Controllers, models, services and jobs are all classes, so familiarize yourself with them early on to save a lot of confusion later. In this Laravel Learn lesson, we’ll get introduced to the concept of classes, properties, methods, constructors, visibility and inheritance. After it “clicks” the folder layout of a Laravel project begins to make sense.
It is targeted at PHP novices who would like to know the object-oriented concepts they will run into once they open a Laravel project. Students often skim over this topic and end up being confused when reading framework code. Take another evening here, add a couple of small classes of your own, and the later planets of the Laravel will seem less enigmatic.
This will teach you classes, objects, properties, methods, constructors, access modifiers, inheritance and object oriented PHP in general.
6. Laravel Routing
- Provider: Laravel Documentation
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Routing determines which code is executed if someone visits a URL. You’ll use it for pages, forms, APIs and resources. This part of the docs describes the routing system and provides examples of defining and structuring your routes. As you read, try each example in a new project; it’s easier to remember what it says if you type it.
It’s suitable for those who are new to Laravel and want to understand how it uses a URL to call a controller. A poorly structured routes file can be a pain as your application expands, so get the structure right at the start by using route groups and named routes. They maintain neatness and prevent you from wandering around URLs when you delete a page by changing its name.
You will learn: basic routes, HTTP methods, route parameters, named routes, route groups, route model binding, middleware and resource routes.
7. Laravel Controllers
- Provider: Laravel Documentation
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Controllers provide you with a clean place to store the logic for handling incoming requests. They work in tandem with routes and process forms, database operations, API requests and more. But at the same time, as the project expands beyond a few pages, it becomes easier to read when you avoid having the same logic in the controllers as well.
This resource is useful once you have some basic routing knowledge and want to move beyond keeping all of your application logic in a single route file. One of the good practices is to keep controllers thin. Any method if it becomes too lengthy, it’s typically a clue that there’s something else that’s supposed to be elsewhere, such as a form request, or a separate class. Resource controllers are also useful to practice, as they provide you with a set of standardized methods for typical create, read, update and delete operations.
The things you’ll learn: How to create controllers, controller methods, routing to controllers, resource controllers, dependency injection and single action controllers.
8. Laravel Blade Templates
- Provider: Laravel Documentation
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Blade is the in-built template engine. Allows creating dynamic HTML views that are readable and easy to maintain. The documentation demonstrates how the views are rendered, and templates are stored in .blade.php files. Ten copies of the same header will feel like a miracle to layouts and components.
Most of what you need to create a Laravel Blade interface is supported by Blade, such as inheritance, components, directives, loops and conditions. It’s quite friendly if you have some experience in HTML as you’re mostly writing normal HTML with some extra tags. Take one repeated component in your app, such as a card or a navigation bar, and make it into a component. The results will be apparent from the get-go.
You will learn: how to use the blade syntax, how to use template inheritance, layouts, directives, loops and conditions, components, slots and forms.
9. Laravel Database and Migrations
- Provider: Laravel Documentation
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Laravel’s migration system lets you create and modify database tables using PHP code, making it easier to keep database structures consistent across different environments.
Using migrations, you can create and alter your database tables with PHP code, ensuring a consistent database structure across development and production. This resource is about database configuration, schema creation, modifying schemas and general database management. Version control can also be used to monitor those changes, as with all code.
Any hand-coded PHP MySQL project will immediately appreciate the relief of migrations! No more sending SQL files back and forth – or waiting for someone to let you know if their DB matches yours or not. A piece of advice – get the rollback command out of practice early, you will make mistakes, and being able to roll back a change without getting upset is a confidence booster.
You will learn: How to configure a database, how to use migrations, tables, columns, indexes, foreign keys, schema changes and rollbacks.
10. Laravel Eloquent ORM
- Provider: Laravel Documentation
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Laravel Eloquent is an object-relational mapper (ORM) that lets you interact with database records through PHP models. It provides methods for creating, retrieving, updating, deleting and relating database records without writing raw SQL for every operation.
Laravel Eloquent is the ORM (Object Relational Mapper) that allows you to interact with database records via PHP models. Create, retrieve, update, delete, filter and relate records without raw SQL for every operation. Each database table has its own model, and you’re not cramming a ton of queries into your code as you would be if you were using a SQL query.
Do this after migration as you want tables to be there before you deal with models. The advantage of using an ORM is that beginners can sometimes be afraid that it will hide too much, but it can be used on a drop down basis if necessary. Also work with collections and query scopes. They are tiny attributes that shorten every day queries.
You’ll learn: Eloquent models, database queries, create, update and delete records, model relationships, collections and query scopes.
11. Laravel Eloquent Relationships
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Data: Users have posts, posts have comments, etc., as in a real application: Eloquent provides relationships to represent 1-1, 1-many, many-1 and many-to-many relationships, as well as polymorphic relationships. Here, it is important to give particular attention to eager loading, which can prevent slow pages due to too many database queries.
This page is best used after creating a few small apps, and finding some data that should go together. If you have no experience with database design, draw your tables on paper, and figure out which table “owns” what. This practice helps to make the relationship methods much simpler to select. Ignore polymorphic relationships on initial scan and revisit later when simpler ones feel comfortable.
Topics you will learn: One-to-One, One-to-Many, Many-to-Many, has-many-through, polymorphic and Queries of Relations.
12. Laravel Forms and Validation
- Provider: Laravel Documentation
- Level: Beginner to Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Validation ensures that data is correct and communicates to users what they were incorrect on. Laravel has a complete validation system for validating incoming request data, so you don’t need to write this validation code. Cleanup work later is yet another benefit of good validation, as it will keep out the junk and bad input in your database.
If your app uses a sign-up form, a contact form or a comment box, this page contains everything you need to know. Begin with the simple rules and then progress to form requests as your controllers start to get crowded. Do not accept anything from any user, even if you have created the form yourself. The part that really keeps your app safe is to validate it on the server.
What you’ll learn: validation rules, form requests, custom validation, error messages, conditional validation, validating arrays and file validation.
13. Laravel Authentication and Authorization
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Authentication will answer the question, who am I? Authorization is a response to what the user can do. Laravel offers tools and starter packages for both, so it’s convenient for creating login features, protected dashboards or role-based features. Security is difficult, so it’s easier to use the framework’s tools than to build your own.
It’s easy to confuse the two concepts, so read the difference aloud. Logging in verifies the identity and gates and policies determine if they can edit a post or see an admin page. Attempt to create a micro-application in which the author is the only one to edit their own entries. A very simple exercise which gets policies clicking.
You will learn: authentication, login systems, guards, authorization, gates, policies and protected routes.
14. Laravel API Development
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
It’s easy to send structured data to front-end apps and mobile devices with Laravel. This is where controllers, routes, JSON responses, API resources, authentication, and validation all come together to form a Laravel API or Laravel REST API. API resources are particularly useful as they allow you to specify exactly which data is exported from your app.
This is the page you want to bookmark if you will be using JavaScript in the frontend or a mobile application with Laravel. Write a simple API for a simple service (e.g., a list of books) and test it using a tool like Postman or your browser. It’s a good moment when raw JSON is returned to you by your own code, and it will teach you how the pieces fit together.
You will learn: API routes, API controllers, API resources, request validation, API authentication, pagination and data transformation, and JSON responses.
15. Laravel Sanctum: API Authentication
- Provider: Laravel
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Sanctum is a lightweight authentication for single-page apps, mobile apps and token-based APIs. It provides support for API tokens and also works with SPA authentication with Laravel’s session-based system. Most APIs require some means of determining who is calling them, so it’s a natural progression from the API page above.
Figure out the type of client you are creating for upfront. For a mobile app, it is typically the case that it requires tokens; for a single-page app that’s accessed within the same domain, it may be best to use the session approach. If you read both of these before making your selection, you will avoid the hassle of re-writing your login. If you’re looking to restrict the actions of each token, you should consider using token abilities as well.
You will learn: Sanctum Installation, API Tokens, API Token abilities, SPA authentication, protected API routes, mobile authentication, token revocation and authentication testing.
16. Laravel Queues and Jobs
- Provider: Laravel
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Slow work is removed from the normal request round trip. Consider emailing, manipulating data, constructing reports, or importing data. Your users will see a quick response, and the weighty stuff will be processed in the background. One of those things you don’t necessarily need when you’re first starting, but will appreciate knowing when your app gains traction.
The concept is straightforward: You place a job in a queue, and the worker retrieves it at a later time. Carefully read the failed jobs and retries sections, as they are not the same failures as a regular page request. Understanding how to handle failed jobs and retries can make the difference between a simple demo and a more reliable application.
The course will cover the following topics: jobs, queue workers, queue connections, dispatching, delayed jobs, failed jobs, retries, and monitoring.
17. Laravel Notifications and Mail
- Provider: Laravel
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
You can push messages to the application using channels such as email, database notifications, etc. You compose reusable notification classes, and queue them when an application shouldn’t be slowed down. After you create one, the addition of another type of alert typically requires just a few lines of code.
It can be used for welcome emails, password resets, order confirmations and in-app alerts, among other tasks. Use Markdown emails, which allow you to create clean, beautiful emails without the hassle of HTML. While building, point your Mail settings to a local testing tool, so that you can view your emails without sending them to actual inboxes.
You will learn about notifications, email and database notifications, channels, mail messages, Markdown emails and queued notifications.
18. Laravel Testing
- Provider: Laravel
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Tests let you know if your application continues to act like it should even after you make changes. Laravel has unit test support, feature test support, and the documentation has been updated to include how to write tests, run tests, how to test the database, environments and assertions. You can refactor confidently without fear of breaking anything, even if it’s around just a few of your most important features.
It is not necessary to have to test everything to derive value. Begin with the flows that would cause the most damage if they failed such as registration, logon or checkout. Typically the easiest place to start is to use feature tests that hit a route and test the response. Pick either PHPUnit or Pest, and keep using one to get the hang of it rather than both at the same time.
You’ll learn: testing with units, testing with features, PHPUnit, Pest, HTTP testing, database testing, assertions, test environments, test coverage.
19. Laravel Filesystem and File Storage
- Provider: Laravel
- Level: Intermediate
- Type: Official Documentation / Tutorial
- Cost: Free
Images, documents, product images, downloads – they all need a home. With Laravel’s filesystems tools you have a consistent method for handling uploads and storage locations. If you are just getting started, you can use local storage and move to cloud storage when you’re ready without having to re-enter all of your code.
The most difficult aspect for most newbies is the distinction between private and public files, so read this section twice. Also always validate uploads! Before uploading any file, determine its type and size—they are a common security issue. Upload an avatar is a simple practice project that combines forms, validation and storage.
You will learn how to upload files, working with storage disks, local storage, public storage, reading and removing files, cloud storage concepts and configuration.
20. Laravel From Scratch: 2026 Edition
- Provider: Laracasts
- Level: Beginner
- Type: Video Series
- Cost: free and paid content varies
This is the latest in a series of “Laracasts” that have been running for years. It is for Laravel 12 and above, from the basic to authentication, authorization, queues and all the way through to a full walkthrough on deployment. It is made up of 43 episodes and is taught in practice. The pace is amusing and you can follow it without stopping every two minutes.
If you are looking for a structured and modern introduction to Laravel, it’s a good choice. It also works well with the documentation above; you can watch an episode and then read the corresponding docs page to complete the information. If you can only watch one series, it’s this one.
Note: While a lot of Laracasts is available for free, individual lessons and access to rules may vary. Be sure to review the current Laracast page before declaring the entire series free.
You’ll learn: Laravel basics, project setup, routing, controllers, views, working with databases, authentication, authorization, queues, testing, deployment.
21. Laravel Task Scheduling
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Documentation / Learning Resource
- Cost: Free
The task scheduler allows you to write recurring jobs in code rather than having to manage a pile of cron jobs. Employ it with scheduled commands, reports, cleanup tasks and other automated tasks. The schedule is part of your codebase, so anyone on the team can discover what is played and when.
Common examples are to delete old records on a daily basis or email a summary each week or refresh cached data. Focus on the overlap section as a slow task running two times can cause problems. In any case, on a production server you will have to have one cron entry that will start the scheduler, so read this setup step before deployment.
You will learn how to schedule a task, use scheduled commands and jobs, set frequency options, set-up task hooks, run tasks in the background and prevent overlaps.
22. Laravel Events and Listeners
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Documentation / Learning Resource
- Cost: Free
Events let you define what should happen after a specific action occurs in your application. When a user registers, for instance, your app can publish an event and have listeners send a welcome e-mail, record a record or take any other action you want. This way your controllers stay slim, as they don’t have to be aware of all the follow-up actions.
Is a cool pattern when you’ve reached a few features with your app, but avoid using it in a small project. When one controller method requires just one additional piece, just a plain method call will suffice. Reach for events for multiple unrelated events that react to the same event. The listener classes complement nicely the concepts you learned about queues.
You will learn about events, event listeners, event discovery, event handling, queued listeners and event-driven architecture and event caching.
23. Laravel HTTP Client
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Documentation / Learning Resource
- Cost: Free
There are apps that converse with other services on a regular basis today. Whether you’re connecting a payment service, a third party API or an external data provider, the HTTP client provides you with a clean way to make outgoing requests. There’s no need to worry about retries and timeouts, as they’re built in.
A good practice project is to fetch some data from a public API and present it in a Blade view, such as a weather widget or a currency converter. Do not store API keys in code, store them in environment file. The testing section is also very interesting, as it explains how to inject answers into the tests so that they don’t rely on another server being up.
You’ll learn about GET and POST requests, API integration, headers, authentication, JSON responses, timeout and retry and testing HTTP requests.
24. Laravel Cache
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Documentation / Learning Resource
- Cost: Free
Laravel’s cache system helps improve application performance by storing frequently accessed data so it does not need to be retrieved or calculated repeatedly.
Caching improves your app’s performance by eliminating unnecessary database queries and computations. There’s a single cache API for Laravel that can be used with various cache backends, you can cache database results, API responses and other data that is frequently requested. Just a bit of caching in the right place can transform a slow page into an instant page.
But not everything should be cached! Include it in the area where you have observed a slowdown, and consider expiration or clearing of the stored data. Users will become confused with stale data, and it’s a very frequent “Why is my change not showing up??” moment. Knowing as early as possible what cache keys are and what their expiration entails will prevent you from falling into that pit.
This will cover: cache stores, cache keys, how to cache data, how to retrieve data, expiry, deletion, cache tags and more advanced topics.
25. Laravel Database Queries and Query Builder
- Provider: Laravel Documentation
- Level: Intermediate
- Type: Documentation / Learning Resource
- Cost: Free
The Query Builder allows you to communicate with your database in a more fluent manner when you require something other than full Eloquent Models. It includes retrieving, inserting, updating, deleting records and joins, ordering, grouping and pagination. It comes in handy when there are reports or other queries that don’t fit into a single model.
This page may be familiar to anyone who knows any SQL, as the methods would be identical to writing them manually. It also gives you some protection against SQL injection, if used properly, which is another good reason to use it over concatenating strings. See how many times you can reduce one of your Eloquent queries using the Query Builder and compare the two. Comparing the two approaches will help you understand when to use the Query Builder and when to use Eloquent.
You will learn how to write queries to select, insert, update and delete, how to join and filter, how to order, group and paginate, and how to perform a database transaction.
