SyntaxStudy
Sign Up
PHP Namespaces & Autoloading
PHP Beginner 1 min read

Namespaces & Autoloading

Namespaces & Autoloading

Namespaces prevent naming conflicts between classes. Essential in large applications and frameworks like Laravel.

Declaring

Must be the very first statement in a PHP file: namespace App\Models;

Using Classes

  • use App\Models\User; — import
  • use App\Models\User as U; — alias

Autoloading

PSR-4 autoloading (via Composer) automatically loads class files based on namespace. No manual require needed.

Example
<?php
// File: src/Models/User.php
namespace App\Models;

class User {
    public function __construct(
        public readonly string $name,
        public readonly string $email,
    ) {}
}

// File: index.php
use App\Models\User;

$user = new User("Alice", "alice@example.com");
echo $user->name;   // Alice
echo $user->email;  // alice@example.com

// composer.json autoload
// "autoload": {
//   "psr-4": { "App\": "src/" }
// }
?>