Честный вызов компонента
Честный вызов компонента
Обращение к секьюрити:
Yii::$app->getSecurity()
Yii::$app->security
Обращение к сессии:
Yii::$app->getSession()
Yii::$app->session
Найдите 146 отличий
В чём разница?
Yii::$app->getSecurity()
Yii::$app->security
Обращение к сессии:
Yii::$app->getSession()
Yii::$app->session
Найдите 146 отличий
В чём разница?
Спишь?
Re: Честный вызов компонента
astronin, в разных источниках, официальном доке и yii2-app-advanced-master к, например, security обращаются по разному:
Yii::$app->getSecurity()->generatePasswordHash($password);
Yii::$app->security->generatePasswordHash($password);
Вот я и спрашиваю, в чём разница
Yii::$app->getSecurity()->generatePasswordHash($password);
Yii::$app->security->generatePasswordHash($password);
Вот я и спрашиваю, в чём разница
Спишь?
Re: Честный вызов компонента
Без разницы.Ferro7 писал(а):в чём разница
Парадигма ООП подразумевает обращение к свойствам объекта только через методы, так называется геттеры и сеттеры. Для удобства в PHP есть магический метод __get, который позволяет обращаться к свойству по имени, но при этом не нарушая ООПэшности, т.е. подменяя имя свойства на имя метода getЧтототам.
-
- Сообщения: 957
- Зарегистрирован: 2014.05.31, 20:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Честный вызов компонента
Разница в читабельности.
Не так давно Дмитрий Елисеев провёл вебинар по геттерам и сеттерам. Хоть я и не смотрел, но уверен, что материал является одним из самых подробных в рунете на данную тему.
Не так давно Дмитрий Елисеев провёл вебинар по геттерам и сеттерам. Хоть я и не смотрел, но уверен, что материал является одним из самых подробных в рунете на данную тему.
Re: Честный вызов компонента
юзайте геттеры - это правильнее, очевиднее и быстрее.
Re: Честный вызов компонента
Не быстрее, это точно.zelenin писал(а):юзайте геттеры - это правильнее, очевиднее и быстрее.
Обратиться к $class->getProperty()
Или обратиться к $class->property, который вызовет __get(), который вызовет, возможно, родительский __get(), который вызовет getProperty()
Думаю в первом случае будет немного побыстрее
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Честный вызов компонента
Вы это вряд ли ощутите.
Последний раз редактировалось vitalik1183 2015.06.11, 12:25, всего редактировалось 1 раз.
Yii2!
Re: Честный вызов компонента
Геттер - метод для доступа к атрибуту, обычно начинающийся с get. Судя по всему вы перепутали понятия.Onotole писал(а):Не быстрее, это точно.zelenin писал(а):юзайте геттеры - это правильнее, очевиднее и быстрее.
Обратиться к $class->getProperty()
Или обратиться к $class->property, который вызовет __get(), который вызовет, возможно, родительский __get(), который вызовет getProperty()
Думаю в первом случае будет немного побыстрее
Re: Честный вызов компонента
Эм.. Что я перепутал?zelenin писал(а):Геттер - метод для доступа к атрибуту, обычно начинающийся с get. Судя по всему вы перепутали понятия.Onotole писал(а):Не быстрее, это точно.zelenin писал(а):юзайте геттеры - это правильнее, очевиднее и быстрее.
Обратиться к $class->getProperty()
Или обратиться к $class->property, который вызовет __get(), который вызовет, возможно, родительский __get(), который вызовет getProperty()
Думаю в первом случае будет немного побыстрее
Я знаю, что такое геттер и об этом и пишу. По сути геттер это обычный метод, который в Yii вызывается магическим __get()
Значение этого петода можно получить двумя путями: обратиться к этому методу напрямую, либо же вызвать несуществующее свойство, при вызове которого сработает __get() который так же вызовет тот же самый метод.
Я к тому, что Yii::$app->session это то же самое. что и Yii::$app->getSession()
Только во втором случае этот метод вызывается напрямую, а во втором через __get()
Re: Честный вызов компонента
геттер - это метод, начинающийся с get. Способ доступа к нему не важен. Я написал, что нужно юзать геттеры, противопоставляя использованию свойств компонента (именно об этом речь идет в этом топике). Вы написали что это неправда и описали опять же то, что я написал, что геттеры быстрее. Где-то вы запутались.Onotole писал(а):Эм.. Что я перепутал?zelenin писал(а):Геттер - метод для доступа к атрибуту, обычно начинающийся с get. Судя по всему вы перепутали понятия.Onotole писал(а): Не быстрее, это точно.
Обратиться к $class->getProperty()
Или обратиться к $class->property, который вызовет __get(), который вызовет, возможно, родительский __get(), который вызовет getProperty()
Думаю в первом случае будет немного побыстрее
Я знаю, что такое геттер и об этом и пишу. По сути геттер это обычный метод, который в Yii вызывается магическим __get()
Значение этого петода можно получить двумя путями: обратиться к этому методу напрямую, либо же вызвать несуществующее свойство, при вызове которого сработает __get() который так же вызовет тот же самый метод.
Я к тому, что Yii::$app->session это то же самое. что и Yii::$app->getSession()
Только во втором случае этот метод вызывается напрямую, а во втором через __get()
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Честный вызов компонента
Вот не похуй как обращаться? Пусть обращается через getMethod() - ваще сиренево.
Yii2!
Re: Честный вызов компонента
даже не знаю как прокомментировать. Тут не автору поста советы даются, а в том числе тебе.vitalik1183 писал(а):Вот не похуй как обращаться? Пусть обращается через getMethod() - ваще сиренево.
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Честный вызов компонента
я обращаюсь $this->commentszelenin писал(а):даже не знаю как прокомментировать. Тут не автору поста советы даются, а в том числе тебе.vitalik1183 писал(а):Вот не похуй как обращаться? Пусть обращается через getMethod() - ваще сиренево.
Не понял причем тут я?
Yii2!
Re: Честный вызов компонента
Разве я сказал, что нужно обращаться именно так? Я просто сказал, что разница во времени. Я сам всегда стараюсь использовать сами геттеры, нежели обращаться к ним через свойстваzelenin писал(а):геттер - это метод, начинающийся с get. Способ доступа к нему не важен. Я написал, что нужно юзать геттеры, противопоставляя использованию свойств компонента (именно об этом речь идет в этом топике). Вы написали что это неправда и описали опять же то, что я написал, что геттеры быстрее. Где-то вы запутались.
Re: Честный вызов компонента
есть замеры по производительности?Onotole писал(а):Разве я сказал, что нужно обращаться именно так? Я просто сказал, что разница во времени. Я сам всегда стараюсь использовать сами геттеры, нежели обращаться к ним через свойстваzelenin писал(а):геттер - это метод, начинающийся с get. Способ доступа к нему не важен. Я написал, что нужно юзать геттеры, противопоставляя использованию свойств компонента (именно об этом речь идет в этом топике). Вы написали что это неправда и описали опять же то, что я написал, что геттеры быстрее. Где-то вы запутались.
-
- Сообщения: 957
- Зарегистрирован: 2014.05.31, 20:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Честный вызов компонента
Я замерял когда-то, на Yii 2 с длинными циклами. Свойство vs Геттер - средние результаты были фактически одинаковыми.
Re: Честный вызов компонента
ну я так и написал, что геттер быстрее, а ты говоришь что геттер не быстрее, потому что.... и описываешь, что геттер быстрее.Onotole писал(а):Разве я сказал, что нужно обращаться именно так? Я просто сказал, что разница во времени. Я сам всегда стараюсь использовать сами геттеры, нежели обращаться к ним через свойстваzelenin писал(а):геттер - это метод, начинающийся с get. Способ доступа к нему не важен. Я написал, что нужно юзать геттеры, противопоставляя использованию свойств компонента (именно об этом речь идет в этом топике). Вы написали что это неправда и описали опять же то, что я написал, что геттеры быстрее. Где-то вы запутались.
Re: Честный вызов компонента
а нужны они тут? скорость очевидна. интересна может быть только относительная разница.kukuruku писал(а):есть замеры по производительности?Onotole писал(а):Разве я сказал, что нужно обращаться именно так? Я просто сказал, что разница во времени. Я сам всегда стараюсь использовать сами геттеры, нежели обращаться к ним через свойстваzelenin писал(а):геттер - это метод, начинающийся с get. Способ доступа к нему не важен. Я написал, что нужно юзать геттеры, противопоставляя использованию свойств компонента (именно об этом речь идет в этом топике). Вы написали что это неправда и описали опять же то, что я написал, что геттеры быстрее. Где-то вы запутались.
Re: Честный вызов компонента
первое же обращение закэшируется и будет вызываться напрямую. Вполне возможно, что это экономия на спичках, но важен еще фактор очевидности в программировании - неизвестно то ли ты свойство вызвал, то ли геттер, то ли метод из поведения то ли еще что-то магическое, а геттер будет однозначен (и дружелюбнее для IDE).mickgeek писал(а):Я замерял когда-то, на Yii 2 с длинными циклами. Свойство vs Геттер - средние результаты были фактически одинаковыми.