Laravel is the most popular PHP framework for building web applications, from a simple company site with a contact form to a full SaaS product. It gives you a clean structure and ready-made tools for the jobs every application needs: routing, database access, sign-in, email and background jobs. This guide explains Laravel's core concepts as they work in current versions, the skills you need to be productive, and where a Laravel app can run.
Laravel is an open-source PHP framework built around the Model-View-Controller pattern. Its core concepts are routing, middleware, controllers, the Eloquent ORM, Blade templates, migrations, Artisan and the service container. Laravel 10, the version this article once described, has been out of security support since February 2025, so start new projects on the latest release. To work well with it, you need solid modern PHP, SQL basics, Composer and Git.
1. What Laravel is, and which version to use
Laravel was created by Taylor Otwell in 2011 and is free and open source. It sits on top of PHP and a set of well-tested components, many from Symfony, and adds a consistent, readable way of putting them together.
Laravel releases a new major version about once a year: Laravel 10 in 2023, 11 in 2024 and 12 in 2025. Each major version gets bug fixes for 18 months and security fixes for two years. That means:
| Version | Released | Security fixes until | Use it for |
|---|---|---|---|
| Laravel 10 | February 2023 | February 2025 (ended) | Upgrade existing apps; don't start new ones |
| Laravel 11 | March 2024 | March 2026 (ended) | Upgrade existing apps |
| Laravel 12 and later | February 2025 onwards | See laravel.com | New projects: use the newest release |
Check the release notes on laravel.com before you start. Laravel 12 needs PHP 8.2 or newer, and later releases may raise that.
Since Laravel 11 the project skeleton is slimmer: there is no app/Http/Kernel.php, and middleware, exceptions and routing are configured in bootstrap/app.php. Older tutorials that tell you to edit the HTTP kernel were written for Laravel 10 and earlier.
2. The request lifecycle in one picture
Every request to a Laravel app follows the same path:
- Entry point.The web server sends the request to
public/index.php. - Middleware.The request passes through middleware, which can check sign-in, CSRF tokens or rate limits and stop it early.
- Routing.The router matches the URL and HTTP method to a controller action or closure.
- Controller.The controller validates input, calls models and services, and prepares data.
- Response.A Blade view, JSON or a redirect goes back through the middleware to the browser.
Knowing this path makes debugging much easier: most "why is my page blank" problems sit at one of these five steps.
3. The core concepts
routes/web.php and routes/api.php map URLs to code, for example Route::get('/orders/{order}', [OrderController::class, 'show']);. Route model binding loads the order for you.auth to require sign-in or throttle to limit requests.Order::where('status', 'paid')->latest()->get() reads like the question you are asking. Relationships such as hasMany link models.php artisan migrate. Seeders fill the database with test or starter data.php artisan make:model Order -m creates a model and its migration.Beyond these, most real applications also use:
- Validation, with form request classes that reject bad input before your controller runs.
- Authentication, through the official starter kits (React, Vue or Livewire), which set up registration, sign-in and password reset.
- Queues and events, to move slow work such as sending email out of the request.
- Testing, with Pest or PHPUnit, so you can change code without fear.
4. A tiny example
A route, a controller and a Blade view that list paid orders:
// routes/web.php
use App\Http\Controllers\OrderController;
Route::get('/orders', [OrderController::class, 'index'])->middleware('auth');// app/Http/Controllers/OrderController.php
namespace App\Http\Controllers;
use App\Models\Order;
class OrderController extends Controller
{
public function index()
{
$orders = Order::where('status', 'paid')->latest()->paginate(20);
return view('orders.index', ['orders' => $orders]);
}
}{{-- resources/views/orders/index.blade.php --}}
@foreach ($orders as $order)
<p>#{{ $order->id }} for {{ $order->customer_name }}</p>
@endforeach
{{ $orders->links() }}The {{ }} syntax escapes output, so a customer name containing HTML can't inject script into the page.
5. Skills you need
A sensible learning path: build a small CRUD app (a task list or product catalogue) with a starter kit, add validation and tests, then deploy it. The official Laravel documentation and Laravel Bootcamp are the best free starting points.
6. Where a Laravel app can run
Laravel runs anywhere modern PHP runs, but not every feature works everywhere:
- Web routes, controllers, Eloquent and Blade
- MySQL databases from the control panel
- File-based cache and sessions, the sync queue
- The scheduler, run by a one-minute cron job
- Queue workers (
queue:work) and Horizon - Redis, Octane and Reverb websockets
- Running Composer on the server
On Domain India shared hosting, Composer can't run on the server because the PHP functions it needs are disabled, so you build the project on your computer and upload it with vendor/. The full walkthrough is in Laravel on cPanel and DirectAdmin, and the beginner route is in how to install Laravel on shared hosting. On our cPanel server, new accounts default to PHP 8.3; you can change it per domain with the PHP version guide.
7. Where Domain India fits
| Your Laravel app | Good fit | Why |
|---|---|---|
| Small business site, portal or CRUD app | cPanel or DirectAdmin shared hosting | Runs vanilla Laravel with MySQL and the cron scheduler |
| App with queue workers, Redis or websockets | VPS | Self-managed with root access, so you run any process you need |
| Containerised app | App Platform | PHP apps deploy with a Dockerfile; only Node.js is detected automatically |
- 25 GB NVMe SSD Storage
- 50 GB Monthly Bandwidth
- 1 Website
- 10 Email Accounts
- 1 vCPU
- 2 GB DDR4 RAM
- 64 GB NVMe SSD Storage
- 2 TB Monthly Bandwidth
The cards show Domain India list prices on 19 September 2026, excluding 18% GST. Compare cPanel hosting, VPS servers and the App Platform.
8. Frequently asked questions
What is Laravel used for?
Laravel is a PHP framework for building web applications: business websites, customer portals, online stores, APIs and SaaS products. It provides routing, database access, authentication, email, queues and testing tools, so developers don't build them from scratch.
Is Laravel 10 still supported?
No. Laravel 10 received security fixes until February 2025, and Laravel 11 until March 2026. Upgrade existing apps and start new projects on the latest Laravel release listed on laravel.com.
Which PHP version does Laravel need?
Laravel 12 needs PHP 8.2 or newer, and later releases may require more. On Domain India's cPanel server, new accounts default to PHP 8.3, and you can choose the version per domain.
Can I run Laravel on Domain India shared hosting?
Yes, for standard Laravel apps using Blade, Eloquent, MySQL, file-based cache and a cron-driven scheduler. Composer can't run on the server, so build locally and upload the vendor folder. Queue workers, Redis, Octane and Reverb need a VPS.
Do I need to know PHP before learning Laravel?
Yes. Laravel is written in PHP and uses classes, namespaces, type declarations and closures everywhere. Learn modern PHP and basic SQL first, then Laravel will make much more sense.
What is Eloquent in Laravel?
Eloquent is Laravel's object-relational mapper. Each database table has a model class, and you query and save rows through that class instead of writing SQL by hand, with relationships between models defined as methods.
Ready to deploy your first Laravel app? Read Laravel on cPanel and DirectAdmin, then choose cPanel hosting for a standard app or a VPS when you need workers and Redis.
Tell us what your app uses, and our support team will suggest shared hosting, a VPS or the App Platform.
Ask our team