Найдено 609 результатов

Bio man
2018.02.16, 11:46
Форум: Общие вопросы по программированию
Тема: индексы БД
Ответы: 11
Просмотры: 3171

Re: индексы БД

Спасибо.

А если создается индекс внешнего ключа, то нужно создавать обычный индекс?
Bio man
2018.02.16, 11:23
Форум: Общие вопросы по программированию
Тема: индексы БД
Ответы: 11
Просмотры: 3171

Re: индексы БД

Почему тогда второй нужен?
Bio man
2018.02.16, 10:15
Форум: Общие вопросы по программированию
Тема: индексы БД
Ответы: 11
Просмотры: 3171

индексы БД

Если есть уникальный ключ по связке из 2 полей, нужно ли создавать 2 дополнительных индекса по этим полям для ускорения поиска по ним по отдельности? Например, $this->createIndex('idx-name', SqlProgramRepository::SUBJECTS_TABLE, 'name'); //нужен этот индекс? $this->createIndex('idx-type', SqlProgram...
Bio man
2018.02.15, 10:29
Форум: Архитектура, дизайн, ООП
Тема: вложенные сущности, доменные события
Ответы: 12
Просмотры: 4982

Re: вложенные сущности, доменные события

То есть агрегат становится не самостоятельным объектом, а зависимым от того, релизнет ли внешний клиент его события или нет. Почему? Нету такой зависимости. Релизится в репозитории. Если сделать через синглтон, проблема с "мерджингом" даже не появится. Откуда вообще эта идея с releaseEven...
Bio man
2018.02.14, 23:11
Форум: Архитектура, дизайн, ООП
Тема: вложенные сущности, доменные события
Ответы: 12
Просмотры: 4982

Re: вложенные сущности, доменные события

А еще лучше, в методе getUpdateTime агрегата проходить по всем сущностям и возвращать нужное время.
Вроде самый адекватный вариант.
Bio man
2018.02.14, 22:56
Форум: Архитектура, дизайн, ООП
Тема: вложенные сущности, доменные события
Ответы: 12
Просмотры: 4982

Re: вложенные сущности, доменные события

Что-то про время изменения забыл... Если менять сущность, то агрегат не узнает время изменения напрямую. Думаю, сделать такой хак. При сохранении, в репозитории выбрать время изменения агрегата и всех сущностей, и в итоге записать максимальное из них. Но в таком случае, $ar->getUpdateTime() будет во...
Bio man
2018.02.14, 22:48
Форум: Архитектура, дизайн, ООП
Тема: вложенные сущности, доменные события
Ответы: 12
Просмотры: 4982

Re: вложенные сущности, доменные события

zelenin писал(а): 2018.02.14, 21:42 норм. главное не забывать новые сущности добавлять в обход при добавлении.
Имеешь в виду в репозитории?

В любом случае, если забуду, то работать не будет. Как ни крути, но такие вещи всплывают сразу, если про них забыть.
Bio man
2018.02.14, 20:58
Форум: Архитектура, дизайн, ООП
Тема: вложенные сущности, доменные события
Ответы: 12
Просмотры: 4982

Re: вложенные сущности, доменные события

А если это не удобно? $aggregate->addSomething($entityId, $itemId) // намного удобней так $entity = new Entity(...); $entity->addSomething(...); $aggregate->addEntity($entity); $aggregate->addEntity($entity2); // ... $events = $aggregate->releaseEvents(); // обходит сущности и мержит их события со с...
Bio man
2018.02.14, 18:17
Форум: Архитектура, дизайн, ООП
Тема: вложенные сущности, доменные события
Ответы: 12
Просмотры: 4982

вложенные сущности, доменные события

Есть у меня агрегат, содержащий список сущностей, и каждая из этих сущностей содержит список идентификаторов других сущностей. Мне нужно сохранять все дерево в репозитории. Но как быть с событиями? Нет проблем, когда я добавляю сущность в агрегат, но должна ли сущность создавать событие, когда она и...
Bio man
2018.02.12, 17:21
Форум: Архитектура, дизайн, ООП
Тема: DDD, remove, aggregate event
Ответы: 2
Просмотры: 1990

Re: DDD, remove, aggregate event

Ну да, логично. Спасибо.
Bio man
2018.02.12, 17:00
Форум: Архитектура, дизайн, ООП
Тема: DDD, remove, aggregate event
Ответы: 2
Просмотры: 1990

DDD, remove, aggregate event

Почему нельзя создать событие удаления прямо в репозитории?
Зачем добавлять агрегату лишний метод remove и вызывать его перед вызовом repository::remove?
Bio man
2018.02.11, 22:29
Форум: Общие вопросы (Yii 2.x)
Тема: часовой пояс
Ответы: 4
Просмотры: 1396

Re: часовой пояс

Что-то ты перепутал. Время в PHP всегда зависит от часового пояса, единственное исключение, это UNIX timestamp, оно по определению в UTC.
И что мне, по твоему, даст таблица? Не обижайся, но это какой-то бред, для фильтров еще таблицу буду создавать :D
Bio man
2018.02.11, 20:47
Форум: Общие вопросы (Yii 2.x)
Тема: часовой пояс
Ответы: 4
Просмотры: 1396

Re: часовой пояс

Пока сделал с помощью хелпера, так более красивше

Код: Выделить всё

$filters = $model->toArray();
$filters['creationDateFrom'] = DateTime::toUtc($filters['creationDateFrom']);
$filters['creationDateTo'] = DateTime::toUtc($filters['creationDateTo']);
Но тема не закрыта.
Bio man
2018.02.11, 20:14
Форум: Общие вопросы (Yii 2.x)
Тема: часовой пояс
Ответы: 4
Просмотры: 1396

часовой пояс

Системное время выставлено в UTC, Formatter::timezone установлен в локальный часовой пояс юзера. В табличках все хорошо выводится. Но как лучше сделать для фильтров? Должна быть такая схема: юзер вводит локальную дату -> система преобразует в UTC -> ... -> преобразовываем в локальную дату -> выводим...
Bio man
2018.02.10, 18:14
Форум: Общие вопросы (Yii 2.x)
Тема: В чем суть DataFilter?
Ответы: 7
Просмотры: 4775

В чем суть DataFilter?

Обнаружил такую новую модельку https://github.com/yiisoft/yii2/blob/ma ... Filter.php
Но толковой документации с примерами не нашел.
Кто нибудь использовал? В чем вообще преимущество в сравнении с обычной search model?
Bio man
2018.02.10, 02:43
Форум: Архитектура, дизайн, ООП
Тема: cQrs, общие вопросы
Ответы: 8
Просмотры: 3803

Re: cQrs, общие вопросы

Спасибо за ответ. Идею в принципе понял. Я знакомлюсь с DDD, но в работе использую только те идеи DDD, которые считаю уместными. Например, идею репозиториев и сервисов (хотя, это больше из гексагональной темы). Поэтому я добавил оговорку, что разницы для меня особой нет, в каком контексте рассматрив...
Bio man
2018.02.10, 01:12
Форум: Архитектура, дизайн, ООП
Тема: DDD, работа с файлами
Ответы: 9
Просмотры: 3988

Re: DDD, работа с файлами

В сервисе удалять нельзя. Ибо у сервиса нет информации, будет ли файл использоваться где-то еще в приложении. Так что, оставляем эту заботу тому, кто передал файл в сервис.
Bio man
2018.02.09, 20:47
Форум: Архитектура, дизайн, ООП
Тема: DDD, работа с файлами
Ответы: 9
Просмотры: 3988

Re: DDD, работа с файлами

Я вот гадаю, что делать с временным файлом (не факт, что он был загружен через форму, так что полагаться на GC нельзя)? Удалять его в сервисе или же возложить ответственность за подчистку тому коду, который создал файл (контроллеру, например)?
Bio man
2018.02.09, 17:29
Форум: Архитектура, дизайн, ООП
Тема: DDD, работа с файлами
Ответы: 9
Просмотры: 3988

Re: DDD, работа с файлами

ElisDN писал(а): 2018.02.09, 16:39
Bio man писал(а): 2018.02.09, 13:54 но с возможностью смены адаптера
Если со сменой, то сделать интерфейс в приложении/домене и реализацию в инфраструктуре.
Есть готовые либы с адаптерами. Не вижу смысла заниматься выделением интерфейсов, когда есть готовые сторонние решения/интерфейсы