Laravel for Beginners to Intermediate -
Course Syllabus
Module 1: PHP Recap
1.1 Introduction to PHP
• What is PHP?
• Syntax and basic structure
1.2 Variables and Data Types
• Variable declarations
• Data types (Strings, Numbers, Arrays, Objects)
• Constants
1.3 Functions
• Creating functions
• Function arguments and return values
• Variable scope: Local vs. global variables
1.4 Arrays
• Indexed arrays
• Associative arrays
• Multidimensional arrays
• Array functions (e.g., array_merge(), array_push(), array_slice())
1.5 Object-Oriented Programming (OOP) in PHP
• Classes and objects
• Properties and methods
• Visibility (public, private, protected)
• Constructors and destructors
• Keywords: this, self, and static methods/properties
Module 2: Introduction to Laravel
2.1 Introduction to Laravel Framework
• Why Laravel?
• MVC (Model-View-Controller) architecture
• Overview of Laravel features
2.2 Laravel Installation
• System requirements
• Installation using Composer
• Setting up a new Laravel project
• Configuration (.env file, debugging, environment settings)
Module 3: Artisan CLI & Application Structure
3.1 Artisan CLI
• Introduction to Artisan
• Common Artisan commands (php artisan serve, make, migrate, etc.)
• Creating controllers, models, and more using Artisan
3.2 Directory Structure of Laravel
• Understanding the key folders: app, config, routes, resources, database
• Configuring Laravel applications
Module 4: Routing in Laravel
4.1 Basic Routing
• Defining routes
• Route parameters (Required/Optional)
• Route grouping and middleware
4.2 Controllers
• Creating controllers via Artisan
• Resourceful routing
• Route model binding
Module 5: Views & Blade Templating Engine
5.1 Introduction to Blade
• Setting up and rendering views
• Blade syntax (@extends, @section, @yield, etc.)
• Echoing variables and escaping output
5.2 Blade Directives
• Conditional statements: @if, @unless
• Loops: @foreach, @for, @while
• Including templates: @include
5.3 Layouts and Components
• Blade layouts for reuse
• Blade components and slots
Module 6: Working with Models and Eloquent ORM
6.1 Introduction to Eloquent ORM
• Defining and using models
• CRUD operations with Eloquent
6.2 Relationships in Eloquent
• One-to-one, one-to-many, many-to-many relationships
• Eloquent relationship methods (hasOne(), belongsTo(), etc.)
6.3 Query Builder
• Advanced queries with Eloquent
• Aggregation methods, joins, and eager loading
Module 7: Handling Forms & Validation
7.1 Forms in Laravel
• Form creation and submission
• Handling form requests
7.2 Validation
• Defining validation rules
• Custom error messages
• Request validation with Form Requests
• Redirects and displaying errors
Module 8: File Uploads & Handling
8.1 Working with Files
• Uploading files with Laravel
• File validation (size, type)
• Storing files using Laravel's file storage system
• Accessing and downloading files
Module 9: Sending Emails in Laravel
9.1 Email Basics
• Configuring mail settings
• Sending simple emails
9.2 Mailable Classes
• Creating and sending emails using Mailable classes
• Email templates with Blade
9.3 Email Queues
• Queueing email jobs
Module 10: API Development with Laravel
10.1 RESTful APIs in Laravel
• Principles of REST
• Creating API routes
• Using Controllers for API requests
• Responding with JSON
10.2 API Authentication
• Introduction to Laravel Sanctum or Passport
• API tokens and user authentication
10.3 Resources in Laravel
• API Resources for response formatting
• Resource collections and pagination
Module 11: Deployment & Hosting
11.1 Preparing for Production
• Optimizing Laravel for production
• Configuring .env and environment variables
• Database migrations on production
11.2 Deploying to a Web Server
• Deploying on shared hosting
• Setting up Laravel on a Linux server
Module 12: Additional Topics
12.1 Laravel Packages
• Installing and using third-party packages
• Popular Laravel packages
12.2 Task Scheduling
• Scheduling tasks using the Laravel Task Scheduler