Так что я не PHP-разработчик - я однажды сделал PHP 5, и этого было достаточно - так что я не на 100% по всем аспектам того, что PHP поддерживает в этом случае.
Однако,Я думаю, что вы хотите, это частные внутренние классы.Открытый класс может иметь частные внутренние классы, к которым имеет доступ только он.Итак, для вашего примера электронной почты ...
public class Email {
private Subject subject;
private Body body;
private Recipient recipient;
public Email() {
this.subject = new Subject();
this.body = new Body();
this.recipient = new Recipient();
}
public void setText(String text){
this.body.text = text;
}
//more getters & setters...
private class Subject {
public String text;
}
private class Body {
public String text;
public String format;
}
private class Recipient {
public String address;
}
}
Поскольку Subject, Body, Recipient являются частными внутренними классами, внешние классы их не видят.Таким образом, вы не можете вернуть экземпляр, скажем, Body, и ожидать, что некоторый внешний класс сможет работать с ним, потому что внешний класс не может даже увидеть его определение для его импорта.Но если ваши геттеры и сеттеры полностью охватывают все операторы чтения / записи, это подойдет для вашего варианта использования.