Очередной элементарный вопрос на пути изучения ООП, о котором напрямую не говорят нигде практически (по крайней мере доступным языком), а именно - как класс получает свои данные для работы?
То есть вот есть определенный класс, у него есть несколько приватных переменных - данных, с которыми будут работать методы, я пока определил несколько путей как Данные попадают в класс:
1. Через Конструктор
2. Через сеттеры
3. Напрямую после создания класса (если переменная public), типа так: $class->value = 'Value';
...
А как еще?
FanatPHP, судя по тому что на мой вопрос уже подписалось 3 человека - это Важный вопрос который должен быть разжеван в самом начале во время обучения ООП, что делают очень немногие!
Антон Р., скорее настолько абсурдный, что интересно, какие ответы могут дать.
И во многих книжках по ООП, где есть раздел про синтаксис, это объясняют.
Konata Izumi, дайте конкретную ссылку на книгу где именно так и объясняется - что вот данные пришли Сюда-то, мы их методами обработали и что-то получили в итоге.
Антон Р., там дальше идет по книге. И про конструкторы и про сеттеры и т.д.
Я лишь привел начало главы об этом.
И такие главы есть во многих книгах про ООП.
Или мне вам полностью книгу скринить и сюда выкладывать?
1. Через Конструктор
2. Через сеттеры
3. Напрямую после создания класса (если переменная public), типа так: $class->value = 'Value';
4. Загружают из внешних хранилищ(AR)
5. через DTO
AlexBergal, сеттеры обычно работают с 1 значением, или с несколькими по очереди. Методы работы с DTO загружают все разом. Загрузка из бд тоже не является сеттером, так как данные появляются "изнутри" объекта.
В контексте вопроса автора, пункты 4 и 5 как минимум не к месту
как раз в контексте, то есть на вопрос "откуда данные" - ответ "из хранилища, прозрачно загружаемые через методы парент класса". Что никак не относится к сеттерам, так как они определяют методы работы/изменения свойств снаружи объекта.
Антон Р., сеттер - способ изменить приватное свойство снаружи класса, в самом простом случае просто в метод передающий значение приватному свойству. Но это самое простое и, чаще всего, не верное использование, т.к. внутри сеттера должна быть некая логика по проверке передаваемого значения на "правильность", иначе можно просто сделать свойство паблик и не морочиться.