Size: a a a

2020 October 29

JB

Jurij Bachkov in symfony
class Foo {
private Foo $bar = new Foo();
}
источник

AN

Alexander Nazarov in symfony
Dmitry
если такое добавят то будут делать так
private SomeClass $data = new SomeClass(SomeOtherClass::getSomething(), blahblabhalb.....)
не не, речь именно про объекты с конструкторами без аргументов
источник

AN

Alexander Nazarov in symfony
Jurij Bachkov
class Foo {
private Foo $bar = new Foo();
}
в чем проблема сделать тоже самое в конструкторе?
источник

D

Dmitry in symfony
Alexander Nazarov
не не, речь именно про объекты с конструкторами без аргументов
ага, а у того класса будет конструктор который потянет за собой еще 100500 зависимостей
источник

D

Dmitry in symfony
итогу простое создание обьекта выльется в резолв всего чего только можно
источник

AN

Alexander Nazarov in symfony
Dmitry
ага, а у того класса будет конструктор который потянет за собой еще 100500 зависимостей
и что? Какая разница сделаю я это в сразу в пропсах, или сделаю я это в конструкторе? Зависимости типа из конструктора не подтянутся?
источник

DT

Dmitriy Tkachenko in symfony
Alexander Nazarov
чем отличается

class A {
  private DateTime $date = new DateTime();
}

От
class A {
  __construct() { $this->date = new DateTime(); }
}
в инициализации поля нельзя использовать экспрешены
источник

D

Dmitry in symfony
Alexander Nazarov
и что? Какая разница сделаю я это в сразу в пропсах, или сделаю я это в конструкторе? Зависимости типа из конструктора не подтянутся?
разница в том что рефлексию тогда тоже придется переделывать
источник

AN

Alexander Nazarov in symfony
Dmitriy Tkachenko
в инициализации поля нельзя использовать экспрешены
да блин, ну выше ведь написал, что в этом и вопрос, RFC ищу по этому поводу. Добавят это в язык или нет, и почему
источник

D

Dmitry in symfony
в общем имхо это никому ненужный геморрой с кучей ветвлений
источник

DT

Dmitriy Tkachenko in symfony
Alexander Nazarov
да блин, ну выше ведь написал, что в этом и вопрос, RFC ищу по этому поводу. Добавят это в язык или нет, и почему
а зачем?)
источник

DT

Dmitriy Tkachenko in symfony
есть конкретное место для инициализации всего что нужно
источник

AN

Alexander Nazarov in symfony
Dmitriy Tkachenko
а зачем?)
Затем что не вижу разницу в этом коде.

class A {
  private DateTime $date = new DateTime();
}

От
class A {
  __construct() { $this->date = new DateTime(); }
}
источник

AN

Alexander Nazarov in symfony
Dmitry
разница в том что рефлексию тогда тоже придется переделывать
есть RFC по этому поводу? Подробнее про рефлексию, что в ней переделывать
источник

JB

Jurij Bachkov in symfony
источник

VS

Vlad Sobenko in symfony
Alexander Nazarov
есть RFC по этому поводу? Подробнее про рефлексию, что в ней переделывать
А какой скоуп должен быть в выражении для проперти(что в this?)?
источник

AN

Alexander Nazarov in symfony
Vlad Sobenko
А какой скоуп должен быть в выражении для проперти(что в this?)?
такой же что в конструкторе
источник

VS

Vlad Sobenko in symfony
Alexander Nazarov
такой же что в конструкторе
Тоесть будет доступ к другим проперти, к которым не дошла очередь инициализации?
источник

AN

Alexander Nazarov in symfony
Vlad Sobenko
Тоесть будет доступ к другим проперти, к которым не дошла очередь инициализации?
ну сейчас на это ексепшен кидается же? Пусть также и кидается. Чтобы невозможно было сделать private $a = $this->b.

Речь идет только про new SomeObject()
источник

VS

Vlad Sobenko in symfony
Alexander Nazarov
ну сейчас на это ексепшен кидается же? Пусть также и кидается. Чтобы невозможно было сделать private $a = $this->b.

Речь идет только про new SomeObject()
Тоесть ты поменяешь порядок обьявления проперти - упадет с ексепшеном?
источник