How can the MVC principle be used to achieve a professional separation of design and code in PHP?

To achieve a professional separation of design and code in PHP using the MVC principle, you can separate the presentation logic (View) from the business logic (Model) and the application logic (Controller). This separation allows for easier maintenance, scalability, and collaboration among developers.

// Model (business logic)
class User {
    public function getUserById($id) {
        // Code to fetch user data from database
    }
}

// View (presentation logic)
class UserView {
    public function displayUser($user) {
        // Code to display user information in a formatted way
    }
}

// Controller (application logic)
class UserController {
    public function showUser($userId) {
        $userModel = new User();
        $user = $userModel->getUserById($userId);
        
        $userView = new UserView();
        $userView->displayUser($user);
    }
}

// Implementation
$userController = new UserController();
$userController->showUser(1);