Dmytro 🇺🇦
https://www.youtube.com/channel/UCErY35YqTw7SRp2YPIlrQ_A
Niko
Благодарю!
Dmytro 🇺🇦
@ASYOU99 Днепр. А ты?
Stas
местный
Stas
тобишь обитаю в месте проведения конфы:)
Borys
Ребят, а что с строгой типизацией?
Borys
Если объявлю в web/index.php по всему проекту же пойдет поидее?
Dmitriy
нет.
Borys
В каждом файле объявлять если необходимо?
Dmitriy
да
Borys
Спасибо.
Borys
Что-то не сильно пойму. если в функцию передается integer, а тип аргумента объявлен string, в итоге функция получит преобразованное string значение т.е. function someName (string $var) { return $var; } someName(33); получу "33"
Stas
а что:?
Dmytro 🇺🇦
Borys
а что:?
Интересуюсь прост)
Borys
т.е. declare(strict_types=1); function someName (string $var) { return $var; } var_dump(someName(33)); без declare функция преобразовывает мой int в string
Borys
хотя я указал что $var должен быть строкой
Borys
и еще нельзя включить глобально строгую типизацию и нужно лепить declare() в каждый файл?
Borys
The Ant
https://wiki.php.net/rfc/scalar_type_hints_v5
Niko
@AlDexor объект вообще не закидывается в очередь без гидратора. Однако вложенный объект, принимаемый в корструкторе, даже с гидратором не принимается. Я сделал service, в который поместил все нужные методы для очереди и передал его гидратором в очередь. Но думаю это костыль
The Ant
их там несколько вроде
Niko
Там есть еще PhpSerializer, но он не захотел работать Пойду посмотрю еще на его ошибки, возможно исправлю. Хотелось бы конечно использовать нормальные, ранее написанные классы
Niko
спасибо! Я пока все делал и забыл про него
Niko
@AlDexor Даа!!! PhpSerializer заработал. Не знаю, что у меня в первый раз не получалось. Но сейчас все работает. Спасибо за подсказку
Borys
http://joxi.ru/KAgYdNEigO5wOm?d=1
Borys
Прокачиваюсь, читаю статью, возник вопрос.
Stas
http://joxi.ru/KAgYdNEigO5wOm?d=1
это че ты за мануал нарыл ниразу такого невстречал кидай глянуть надо
Borys
В yii2 приходится пользоватся вот таким способом отказавшись от конструктора. Правильно ли я понимаю что эта проблема возникает из-за yii2+AR?
Borys
В symfony используется DM? И с конструкторами все ок?
Anonymous
Всем привет! Кто-нибудь знает как сделать красиво и изящно следующее. Есть модель, у нее есть свойство name. Мне нужно сделать что бы при сохранении проверялось существует ли модель с таким именем. И если уже есть, брать эту модель и обновлять, а не создавать новую.
SiZE
$model = Model::find()->name($name)->limit(1)->one(); if ($model === null) { $model = new Model(); $model->name = $name; $model->save(false); }
Anonymous
Пасибо. А как что бы в других местах не переписыват?
Anonymous
Или прямо в модели как то задать
Dmitriy
В symfony используется DM? И с конструкторами все ок?
Хочешь в конструкторах ? пили свое entity
Nikolay
$model = Model::find()->name($name)->limit(1)->one(); if ($model === null) { $model = new Model(); $model->name = $name; $model->save(false); }
вот это все можно положить в метод вида findOrCreate($name) в какой-нибудь репозиторий
Anonymous
в сервис.
Dmitriy
в Query можно
SiZE
у меня гусиная кожа появляется от одной такой мысли
Anonymous
что плохого в createOrUpdate() ?
SiZE
что плохого в createOrUpdate() ?
Код превращается в мусорку от таких методов
Alex
Пиши сервисы с такими методами если оч хочется
Alex
но модель такого не должна иметь
Anonymous
SiZE: $model = Model::find()->name($name)->limit(1)->one(); if ($model === null) { $model = new Model(); $model->name = $name; $model->save(false); } Те проще все таки так писать
Dmitriy
Код превращается в мусорку от таких методов
Левый новый класс превратится в мусорку ?
Anonymous
class ModelService { public function createOrUpdate($name) { $model = Model::find() ->where(['name' => $name]) ->limit(1) ->one(); if ($model) { $model->name = $name; } else { $model = new Model(); $model->name = $name; } if (!$model->save(false)) { throw new \RuntimeException('Saving error.'); } return $model; } } ... in controller $model = $this->service->createOrUpdate($name) Вроде норм.
Dmitriy
if ($model === null) { Еще хуже выглядит
Anonymous
ну можно в кверик byName, но тут это ед. место скорей всего будет, чего заморачиваться.
Alex
юии походу не делает лимитацию автоматом)
Alex
типа вытягивает все и потом уже фильтрует
Anonymous
хоспади, это пример накиданый быстренько, чего ты мне разнос устраиваешь :)
Anonymous
ну про one(), да, он limit() не добавляет.
Kirill
а почему бы и нет, другим полезно почитать
SiZE
1. \RuntimeException . нафиг не нужно. явно не это выкидывать. 2. зачем save(false) ? 3. лимит 1 вроде не нужен когда есть one
3. нужен. one возвращает первый результат из множества. я на автомате добавляю если только не по pk ищу
Anonymous
Я не знаю чо ты там делаешь.
Есть форма с динамическими полями. В полях название лекарств . Типа вводишь парацетомол и если он уже есть то просто привЯзать его к рецепту а не создавать новый
Anonymous
ооох, тут надо быть осторожным с правильностью набора названия, одна опечатка и у нас парацетомол и порацетомол :)
Anonymous
(ну хотя хз, как там у тебя)
SiZE
парацетомол и порацетомол это точно =)
Anonymous
Анальгин в общем
Anonymous
интересно, как с этим бороться? Делать мега автодополнение? Выпадающий список?
Anonymous
Кажется выпадающий список с поиском само ok.
Anonymous
Ну я думал да сделать выпадающий список
Anonymous
если нет в списке, зашёл в справочник и добавил.
Anonymous
select2 какой-нибудь.
Anonymous
Ну надо сделать что бы из одной формы создавался или привЯзывался если уже есть
Dmitriy
1. оно для этого и нужно
Не согласен. RuntimeException это не неконтролируемые исключение. А сохранение мы должны контролировать