
Konstantin
05.07.2017
18:51:18
тут или другая СУБД, или вставлять по одному, или добавить колонку, вставить с уникальным идентификатором в ней, а потом запросить обратно
по-моему вставлять по одному - не такая и плохая идея

Сергей
05.07.2017
19:26:01
Покритикуйте идею базового класса для DTO и DTO для ошибок:
http://yiiframework.ru/forum/viewtopic.php?f=34&t=44075

Dmitriy
05.07.2017
19:40:33
BaseDto без интерфейса.
статические функции зачем ?
в конструктор бы
public function __construct(array $data = [], Container $container = null)
{
if(isset($container)){
$this->container = $container;
}
$this->setObject($data);
}
да бы мы управляли зависимостями.
в ероор разве не лучше прокидывать обьект ?

Google

Dmitriy
05.07.2017
19:41:19
что бы было
$user = new User();
$user->setName('aaa');
$user->setRole('Author');
$user->addGroup(new Group('Authors'));
$dto = new UserDTO($user);

Сергей
05.07.2017
19:42:04
В случаях когда сущность - это AR-томдель туда и прокидывается модель

Dmitriy
05.07.2017
19:42:17
ну тут еще мое имхо. я бы не делал зазовый обьект с магией

Сергей
05.07.2017
19:43:05
Можно я по порядку помучаю :)
"BaseDto без интерфейса. " - можно поподробнеее? Зачем тут интерфейс?

Dmitriy
05.07.2017
19:53:15
Да бы мы знали ничего не изменится.
но я еще не понимаю зачем тут базовый класс
для toJson ? toArray ?

Сергей
05.07.2017
19:54:53
1) Чтобы использовать магию __Get. В DTO я пишу протектед свойства и всё, а геттеры через магию работают.
2) метод make для вызова конструктора. например: EmployeeDto::make($name, $role);

Dmitriy
05.07.2017
19:57:36
$error = new Error();
$error->alert('name')
$dto = new ErrorDTО($error);
Вот так разве не лучше ?
protected function makeErrors
сделать ошибки ?-
делать ошибки ?

Сергей
05.07.2017
19:59:43
class NameDto extends BaseDto {
protected $firstName;
protected $middleName;
protected $lastName;
public function __construct($firstName, $middleName, $lastName) {
$this->firstName = $firstName;
$this->middleName= $middleName;
$this->lastName= $lastName;
вот пример

Dmitriy
05.07.2017
20:00:34
вызывать магией ?

Google

Сергей
05.07.2017
20:00:49
да, чтобы свойства не были доступны для записи

Dmitriy
05.07.2017
20:01:00
если мы хотим добавить не обязательное поле ?

Сергей
05.07.2017
20:01:06
то есть дто создаётся и всё, больше с ним ничего нельзя сделать
в конструкторе поле по-умолчанию

Dmitriy
05.07.2017
20:01:43
а что делать не поумолчанию с полями ?

Сергей
05.07.2017
20:02:22
ой, код не весь вставился
А как в телеграме выделить код, но без помощи @bold ?
Выше ты делал :)

Dmitriy
05.07.2017
20:03:06
`

Сергей
05.07.2017
20:03:17
`class NameDto extends BaseDto {
protected $firstName;
protected $middleName;
protected $lastName;
public function __construct($firstName, $middleName, $lastName) {
$this->firstName = $firstName;
$this->middleName= $middleName;
$this->lastName= $lastName;
}
}
$name = NameDto::make('Пётр', 'Иванович', 'Сидоров');
echo $name->firstName;
echo $name->middleName;
echo $name->lastName;`

Dmitriy
05.07.2017
20:03:55
статические методы такое себе =(.

f4rt~
05.07.2017
20:03:56
``

Dmitriy
05.07.2017
20:04:04
мне нравится такой подход
https://dzone.com/articles/practical-php/practical-php-patterns-data


Сергей
05.07.2017
20:05:04
class NameDto extends BaseDto {
protected $firstName;
protected $middleName;
protected $lastName;
protected $userName;
public function __construct($firstName, $middleName, $lastName, $userName = '') {
$this->firstName = $firstName;
$this->middleName = $middleName;
$this->lastName = $lastName;
$this->userName = $userName;
}
}
$name = NameDto::make('Пётр', 'Иванович', 'Сидоров');
echo $name->firstName;
echo $name->middleName;
echo $name->lastName;
echo $name->userName;
Вот пример с необязательными полями
А где там статические переменные?
Там только функция make и className

Dmitriy
05.07.2017
20:05:57
ой методы

Google

Сергей
05.07.2017
20:06:09
А чем плохо?

Dmitriy
05.07.2017
20:08:05

Сергей
05.07.2017
20:08:48
хочу в классах не дублировать код :)
В случаях, когда DTO для сущности - можно передавать сущность

Dmitriy
05.07.2017
20:09:54
А чем плохо?
в тестах
https://stackoverflow.com/questions/752758/is-using-a-lot-of-static-methods-a-bad-thing

Сергей
05.07.2017
20:12:55
но в данном случае вся прелесть в функции make, но это плюшка и можно использовать new Class()


Nikita
05.07.2017
20:41:44
я новичек подскажите как сделать(образно), у модели есть связь к таблице
return $this->hasMany(Properties::className(), ['id' => 'properties_id'])->viaTable('{{%catalog_objects_properties}}', ['catalog_objects_id' => 'id']);
как сделать редактирование через форму через checkbox
не могу понять

Aziz
05.07.2017
20:54:48
Почему данная запись не работает? $this->layout('buy');

Юрий
05.07.2017
20:55:01
потому что

Сергей
05.07.2017
20:55:22
Наверное ошибка

Юрий
05.07.2017
20:55:35
наверное полное отсутствие вводных

Konstantin
05.07.2017
20:56:00
тю

Юрий
05.07.2017
20:56:01
что там за метод и метод ли вообще

Konstantin
05.07.2017
20:56:09
ну наверное ж потому что нет такого метода
$this->layout = 'buy'?

Сергей
05.07.2017
20:57:10
http://stuff.cebe.cc/yii2docs-ru/guide-structure-views.html#using-layouts

Google

Aziz
05.07.2017
20:57:17
SiteController::layout() does not exist

Сергей
05.07.2017
20:57:37
прочитай документацию
ссылка выше

Aziz
05.07.2017
20:57:47

Konstantin
05.07.2017
20:57:58
ага

Aziz
05.07.2017
20:58:04
ну я и скопировал с оверфлоу'а, еще и галка

Konstantin
05.07.2017
20:58:21
была такая история про тетку на почте, которая круто корректировала дефективные адреса на письмах
как-то им принесли письмецо на котором было нацарапано детской рукой что-то вроде "васе от вани"
тетка догадалась, что письмо на телевидение, была какая-то передача про клоуна васю
мы тут так же :)

Admin
ERROR: S client not available

Aziz
05.07.2017
21:01:42
я ждал продолжение

Сергей
05.07.2017
21:32:00
И снова DDD =)
Правильно ли я делаю?
1) создаю интерфейс StorageRepository
2) создаю класс ARStorageRepository
3) в конфиге пишу:
'container' => [
'singletons' => [
'StorageRepository' => 'ARStorageRepository',
]
]
4) В контроллере пишу:
protected $storageRepository;
public function __construct($id, $module, StorageRepository $storageRepository, $config = [])
{
$this->storageRepository = $storageRepository;
parent::__construct($id, $module, $config);
}
5) Внутри контроллера использую $this->storageRepository

f4rt~
05.07.2017
21:38:28
что мешает Эванса почитать?

Сергей
05.07.2017
21:39:48

Vaderoff
05.07.2017
21:59:45
Знаю что не совсем по теме
Но все же
Надежда есть

Сергей
05.07.2017
22:01:23
http://website/example точно ведёт к выполнению скрипта?

Google

f4rt~
05.07.2017
22:01:55
возьми https://github.com/mattstauffer/Torch/tree/master/components/routing

Сергей
05.07.2017
22:03:08
http://joxi.ru/4zANzGHlvYyXA9

Vaderoff
05.07.2017
22:04:14
А что такое диспатчер?

Alexey
05.07.2017
22:10:21
Попробовал PhpStorm. Понравилось. Подскажите, где раздобыть ключ ?

Сергей
05.07.2017
22:12:17
Купить: https://www.jetbrains.com/phpstorm/buy/#edition=personal :)
Для студентов он вроде бесплатный

Alexey
05.07.2017
22:13:46
>Купить
Спасибо за комплимент -_-

Vladislav
05.07.2017
22:22:22
тулбокс это хрень неработающая

Vaderoff
05.07.2017
22:32:35

Alexandra
05.07.2017
22:54:54
Как возможно сначала в js передать переменные методом post, а затем отправить еще одну переменную и перейти на принимающую страницу по нажатию на кнопку?
Точнее js уже передает, контроллер принимающей страницы их отдает, проблема скорее с кнопкой (во-первых, не отдается значение поля, а во-вторых, не переходит)

Сергей
05.07.2017
22:57:18
Кнопка - ссылка?

Alexandra
05.07.2017
23:05:23
submitButton
Сейчас посмотрела, он отдает только 1 переменную post
Сюда ссылки можно кидать?

Сергей
05.07.2017
23:06:07
да)

Alexandra
05.07.2017
23:06:18
http://www.yiiframework.ru/forum/viewtopic.php?f=19&t=44079

Сергей
05.07.2017
23:09:14
в первый раз передаёшь только us_1, а в контроллере пытаешься получить us_2 , а такого в посте нет и поэтому ошибка

Alexandra
05.07.2017
23:11:52
Ага, тогда как обычно передаются 2 переменные из разных кусков кода?

Сергей
05.07.2017
23:12:31
нужно обе передавать

Alexandra
05.07.2017
23:13:43
Только одновременно?

Сергей
05.07.2017
23:14:23
А зачем поочереди их передавать?
Можно и не одновременно, но тогда нужно будет хранить промежуточные результаты