Size: a a a

2019 December 06

М

Миша in OctoberCMS
https://gist.github.com/Electrica/72addeb308a143542144076a7771a58a
вот тут пытаюсь привязать но выдает null
источник

М

Миша in OctoberCMS
источник

М

Миша in OctoberCMS
источник

v

vladimir in OctoberCMS
А почему ни кто не использует для «колбэков» не связанных с текущей областью видимости статическое объявление замыкания :(
источник

K

Konstantin in OctoberCMS
vladimir
А почему ни кто не использует для «колбэков» не связанных с текущей областью видимости статическое объявление замыкания :(
например?
источник

М

Миша in OctoberCMS
vladimir
А почему ни кто не использует для «колбэков» не связанных с текущей областью видимости статическое объявление замыкания :(
это ко мне сейчас ? А то может я чего не верно делаю
источник

v

vladimir in OctoberCMS
Миша
это ко мне сейчас ? А то может я чего не верно делаю
Нет, это скорее мысли в слух))) прошу извинить)
источник

v

vladimir in OctoberCMS
Konstantin
например?
Ну взять к примеру ::extend’ы моделей, замыкания в параметре ведь не связаны с текущим объектом Plugin,  даже не используют $this. Однако замыкание объявляется не как статическое, получается оно связывается интерпретатором с текущей областью видимости по умолчанию, когда ему в принципе чтобы не «захламлять» область видимости лучше быть объявленным статическим замыканием.
источник

K

Konstantin in OctoberCMS
vladimir
Ну взять к примеру ::extend’ы моделей, замыкания в параметре ведь не связаны с текущим объектом Plugin,  даже не используют $this. Однако замыкание объявляется не как статическое, получается оно связывается интерпретатором с текущей областью видимости по умолчанию, когда ему в принципе чтобы не «захламлять» область видимости лучше быть объявленным статическим замыканием.
тааак тяжело..)) давай вот с этого момента "Однако замыкание объявляется не как статическое". Как оно определяется не как статическое и как будет статическим? Если можно кодом
источник

v

vladimir in OctoberCMS
Konstantin
тааак тяжело..)) давай вот с этого момента "Однако замыкание объявляется не как статическое". Как оно определяется не как статическое и как будет статическим? Если можно кодом
Model::extend(static function($model) { …. }); - Статическое замыкание
Model::extend(function($model) { ….. }); - Не статическое замыкание.


Model::extend(static function($model){ var_dump($this);  }); - Статическое, не связано с текущим объектом, в результате получим либо Notice, либо Exception в зависимости от версии php
Model::extend(function($model) { var_dump($this); }); - Получим объект Plugin’a
источник

М

Миша in OctoberCMS
https://github.com/Electrica/properties/blob/master/models/Properties.php#L41

тут у меня получается что не прилетает модель товара открытого
источник

K

Konstantin in OctoberCMS
vladimir
Model::extend(static function($model) { …. }); - Статическое замыкание
Model::extend(function($model) { ….. }); - Не статическое замыкание.


Model::extend(static function($model){ var_dump($this);  }); - Статическое, не связано с текущим объектом, в результате получим либо Notice, либо Exception в зависимости от версии php
Model::extend(function($model) { var_dump($this); }); - Получим объект Plugin’a
+ о! честно говоря не знал, что так можно объявлять замыкания через "static"..
да, вопрос отпадает сам собой тогда, тут ты прав.
Спасибо)
источник

A

Axenia in OctoberCMS
streeboga (363.1) увеличил карму LeMaX10 (91.4)
источник

v

vladimir in OctoberCMS
Konstantin
+ о! честно говоря не знал, что так можно объявлять замыкания через "static"..
да, вопрос отпадает сам собой тогда, тут ты прав.
Спасибо)
Ну тут скорее мне самому интересно, ведь в доках октября тоже указано без статического.
Возможно где-то есть какая-нибудь «заковырка» типо того, что статические замыкания появились только в 5.4 (вопрос совместимости).
Но логический если в замыкании не требуется работать с текущим объектом, то ему лучше быть статическим, чтобы не захламлять область видимости и не связывать само замыкание с текущем объектом. Тоесть избежать самого автоматического связывания.
источник

K

Konstantin in OctoberCMS
Ну да, надо тестить смотреть, как оно себя ведет при таком объявление.. ещё "привычка" играет большую роль, привыкли объявлть замыкание так и всё исторически сложлиоось. + ещё совсем не нужно заморачиваться в тонкостях, когда всё и так работает.. и оптимизация, как таковая не нужна или не уместна даже)
источник

М

Миша in OctoberCMS
в базу получается закидывает сразу и нулл и с id продукта
источник

v

vladimir in OctoberCMS
Миша
в базу получается закидывает сразу и нулл и с id продукта
null по идее может быть на этапе создания модели. Так как ProductProperties::getFromProperties($model); вызывается.
Возможно тут необходимо ограничить контекстом?

а-ля:
if ($context != ‘create’) {
   ProductProperties::getFromProperties($model);
}


Тогда пустые должны пропасть.
источник

М

Миша in OctoberCMS
БЛИИН
источник

М

Миша in OctoberCMS
слушай
источник

М

Миша in OctoberCMS
if(!$model->exists){
               return;
           }

добавил и теперь все ок
источник