What is the best practice for using object-oriented programming in PHP to make code more organized and readable, especially when it comes to accessing properties through getters and setters?

When using object-oriented programming in PHP, it is considered a best practice to use getters and setters to access and modify object properties. This helps to encapsulate the data within the object and provides a clean interface for interacting with the object's data. By using getters and setters, you can ensure that the object's properties are accessed and modified in a controlled manner, improving code organization and readability.

class User {
    private $username;

    public function getUsername() {
        return $this->username;
    }

    public function setUsername($username) {
        $this->username = $username;
    }
}

$user = new User();
$user->setUsername('john_doe');
echo $user->getUsername();