а я вроде как по теме писал: про "умный конструктор объектов". а где может понадобиться hujnane:getEndLine -- да х* его знает! ты таки зачем это спрашиваешь?
я так рассуждаю, что раз она есть, то она кому-то было на столько сильно нужна, что прям капец. Поэтому это вынесли в отдельный метод одного из этих рефлекшн классов. Т.е. кто-то посчитал это важным, а кто-то согласился. Соотв. они знают чего-то такое, чего я не знаю. Вероятно, есть какой-то приемчик, который делает финт ушами и происходит чудо. я хочу знать что делает тот приемчик, ради которого решили вынести такой механизм вовне. Ибо пхп умеет распасивать текст и отдавать его кусками своих инструкций. Т.е. буде у кого желание единократно узнать где там класс заканчивается - это сделать не сложно. А вот раз вынесли в отдельный метод, значит часто пользуются...
igordata, я могу вообразить такое применение: если есть допустим какая-то отладочная панель, которая выдает стек вызовов. В ней будут упоминаться классы и методы. Чтобы по требованию "покажи писю нужный класс" лишнего не выдать, было бы удобно воспользоваться этой фигней. Ну чисто для эстетов штучка.
Чего-то мне кажется, что рассуждение было таким: " - Парни, у нас мозговой штурм - что нам забубенить в рефлексию. - Давайте сделаем вывод номера начальной и конечной строки класса!111! - Нафига? - Ну я просто предложил..." И тут говнокод) (хотя на "говнокод" можно ответить "сначала добейся")
Добавлено спустя 1 минуту 32 секунды: а вообще есть такое понятие - метапрограммирование, очень крутая вещь, но не для пхп)
вот такая интересная штука получилась Код (Text): protected function createObject($class, $params = []) { $reflection = new ReflectionClass($class); return $reflection->newInstanceArgs($params); } protected function useMethod($object, $method, $params = []) { call_user_func_array([$object, $method], $params); return $object; } protected function getProperty($object, $property) { return $object->$property; } Добавлено спустя 7 минут 10 секунд: а если еще такую фишечку добавить Код (Text): public static function make() { return new self(); }
ну я вообще то имел ввиду языки "все объект" типо рельсов и питона. но и на пхп встречаются некие вариации этого подхода Добавлено спустя 42 секунды: а мы уже во всю 5.4