Найдено 48 результатов
- 2019.09.21, 15:30
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как лучше решить проблему конкурентного доступа в данном случае?
- Ответы: 7
- Просмотры: 1623
Re: Как лучше решить проблему конкурентного доступа в данном случае?
Понимание процесса мне конечно открылось лучше, но мой кейс это всёравно не решает. Что я имею на данный момент: Первая транзакция ( стартует первее ): BEGIN; SELECT * FROM test WHERE busy = 0 LIMIT 1 FOR UPDATE; Результат : строка с ID = X; Вторая транзакция BEGIN; SELECT * FROM test WHERE busy = 0...
- 2019.09.21, 14:14
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как лучше решить проблему конкурентного доступа в данном случае?
- Ответы: 7
- Просмотры: 1623
Re: Как лучше решить проблему конкурентного доступа в данном случае?
Для разных DBMS есть свои нюансы. Например, для MySQL с innoDB вы можете внутри транзакции выполнить SELECT * FROM actors WHERE busy != 0 LIMIT 1 FOR UPDATE; UPDATE actors SET busy = 1 WHERE id = 'ид вернувшийся в первом запросе' Для понимания уровней изоляции просто запустите две сессии и выполняй...
- 2019.09.21, 10:41
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как лучше решить проблему конкурентного доступа в данном случае?
- Ответы: 7
- Просмотры: 1623
Re: Как лучше решить проблему конкурентного доступа в данном случае?
https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C_%D0%B8%D0%B7%D0%BE%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B9 https://www.yiiframework.com/doc/api/2.0/yii-db-transaction#begin()-detail...
- 2019.09.20, 21:11
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как лучше решить проблему конкурентного доступа в данном случае?
- Ответы: 7
- Просмотры: 1623
Как лучше решить проблему конкурентного доступа в данном случае?
Есть сервис отправки сообщений пользователям. Суть его работы в том, что он достаёт из репозитория свободного актора, помечает его занятым, и создает событие отправки сообщения. Далее событие обрабатывается через yii2-queue. Проблема в том, что существует вероятность того что несколько разных клиент...
- 2019.08.13, 14:31
- Форум: Общие вопросы (Yii 2.x)
- Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
- Ответы: 5
- Просмотры: 1589
Re: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Ну это уже внутренняя логика. В мэйлерах могут быть разные конфигурации для теста и для прода. Например конфигурация транспорта.
- 2019.08.13, 12:47
- Форум: Общие вопросы (Yii 2.x)
- Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
- Ответы: 5
- Просмотры: 1589
Re: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Решил проблему на этапе настройки DI следующим образом: if (!YII_ENV_PROD) { $container->set(TestMessage::class, static function (Container $container, $params, $config) use ($app) { return new TestMessage($app->params['test_notifierTo'], $app->params['test_notifierCC'], $config); }); } $container->...
- 2019.08.13, 08:31
- Форум: Общие вопросы (Yii 2.x)
- Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
- Ответы: 5
- Просмотры: 1589
Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
В проекте есть функционал отправки почты. Нужно настроить мэйлер таким образом, что бы в случае если константа YII_ENV_PROD имеет ложное значение вся отправляемая почта перехватывалась и отправлялась на заданные в проекте адреса. В данный момент это реализовано через прослойку на этапе конфигурации ...
- 2019.07.16, 17:02
- Форум: Архитектура, дизайн, ООП
- Тема: Проектирование сущностей, сервисов и репозиториев
- Ответы: 108
- Просмотры: 49684
Re: Проектирование сущностей, сервисов и репозиториев
Исходя из того что посоветовал samdark , пока что реализовал такое решение. Просьба оценить, на сколько вообще это номально смотрится? Задача: создать нужный тикет в зависимости от типа, и создать эвент. Реализация: Модель Ticket 'a: public static function createTicket(TicketDto $dto) { $ticketFacto...
- 2019.07.16, 15:48
- Форум: Архитектура, дизайн, ООП
- Тема: Проектирование сущностей, сервисов и репозиториев
- Ответы: 108
- Просмотры: 49684
Re: Проектирование сущностей, сервисов и репозиториев
Что-то типа TicketHandlerFactory: class TicketHandlerFactory { public function createTicketHandler(string $type): TicketHandlerInterface { // } } Сами хендлеры распихиваем в отдельные реализации TicketHandlerInterface. Идея ясна, но как то не получается её вписать в те концепции о которых я тут узн...
- 2019.07.16, 14:58
- Форум: Архитектура, дизайн, ООП
- Тема: Проектирование сущностей, сервисов и репозиториев
- Ответы: 108
- Просмотры: 49684
Re: Проектирование сущностей, сервисов и репозиториев
Столкнулся вот еще с одним интересным кейсом: У меня прилетают по API различные типы тикетов, все прилетает в один экшн контроллера. В зависимости от типа тикета, его должен обработать определенный метод в сервисе. Кто должен решить это? Контроллер, что то типа такого: switch ($ticketType) { case: T...
- 2019.07.16, 10:36
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как лучше реализовать огромную форму с кучей разных правил валидации?
- Ответы: 3
- Просмотры: 1091
Re: Как лучше реализовать огромную форму с кучей разных правил валидации?
Вместо дропдауна сделайте отдельные ссылки на экшены с теми формами. Да, это достаточно просто и такой вариант плавает на поверхности. Можно, мне кажется, даже оставить дропдаун, просто слать по onCahnge запрос, и pjax-ом рендерить форму с нужными полями. Но идея в том, что форма всегда должна быть...
- 2019.07.16, 09:55
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как лучше реализовать огромную форму с кучей разных правил валидации?
- Ответы: 3
- Просмотры: 1091
Как лучше реализовать огромную форму с кучей разных правил валидации?
Для начала опишу вводные: В системе имеется сущность тикета. Это одна из центральных сущностей бизнес-логики, соответственно имеет достаточно много полей и аггрегирует в себе несколько более маленьких сущностей. Тикеты приходят из разных источников по API, и от многих факторов зависит какие именно п...
- 2019.07.15, 12:44
- Форум: Архитектура, дизайн, ООП
- Тема: Проектирование сущностей, сервисов и репозиториев
- Ответы: 108
- Просмотры: 49684
Re: Проектирование сущностей, сервисов и репозиториев
Дмитрий, я правильно понял, что в приведенном вашем примере Item - это и будет DTO в полях которого будут объекты коммуникаций?
Или же всё таки Item это сущность, которая в своих полях содержит непосредственно DTO отвечающие за разный виды коммуникаций?
Или же всё таки Item это сущность, которая в своих полях содержит непосредственно DTO отвечающие за разный виды коммуникаций?
- 2019.07.15, 10:45
- Форум: Архитектура, дизайн, ООП
- Тема: Проектирование сущностей, сервисов и репозиториев
- Ответы: 108
- Просмотры: 49684
Re: Проектирование сущностей, сервисов и репозиториев
Вот перешел к практике и сразу столкнулся с первыми вопросами. Сначала кратко опишу вводные: Есть сущность тикета. По каждому тикету могут быть разные типы коммуникации с клиентом (sms, email, телефон, соцсети и т.д.). Для каждого типа коммуникации был создан отдельный репозиторий, с целью того что ...
- 2019.07.14, 21:27
- Форум: Архитектура, дизайн, ООП
- Тема: Yii Queue (Очереди)
- Ответы: 6
- Просмотры: 4737
Re: Yii Queue (Очереди)
Жаль, что Дмитрий не ответил на этот вопрос. Надеюсь он(или кто либо другой) увидит что тема обновилось и напишет ответ
- 2019.07.14, 18:38
- Форум: Архитектура, дизайн, ООП
- Тема: Проектирование сущностей, сервисов и репозиториев
- Ответы: 108
- Просмотры: 49684
Re: Проектирование сущностей, сервисов и репозиториев
Дмитрий, спасибо большое вам за этот цикл статей, еще не полностью изучил, но уже реально очень много нового узнал! У меня возник вопрос по поводу диспетчеризации: Если мы рассматриваем большое приложение с кучей сущностей и сервисов, я боюсь представить каким адом в итоге может оказаться система ра...
- 2019.06.24, 11:49
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как реализовать подгрузку данных приходящих по API
- Ответы: 3
- Просмотры: 1338
Re: Как реализовать подгрузку данных приходящих по API
AJAX запрос по таймеру - первое о чём подумал, но решил что как то костыльно и должно быть какое то более изящное решение
А вот websocket в таком контексте не доводилось использовать. Однажды только писал простенький консольный чат на PHP в обучающих целях. Можно тут поподробнее?
А вот websocket в таком контексте не доводилось использовать. Однажды только писал простенький консольный чат на PHP в обучающих целях. Можно тут поподробнее?
- 2019.06.24, 09:53
- Форум: Общие вопросы (Yii 2.x)
- Тема: Как реализовать подгрузку данных приходящих по API
- Ответы: 3
- Просмотры: 1338
Как реализовать подгрузку данных приходящих по API
Есть проект полностью на YII2. В том числе в проекте реализован API. С помощью API сторонние сервисы создают тикеты в системе, к каждому тикету можнт быть прикреплено N файлов. Методы API устроены следующим образом - один запрос приходит в формате json - на создание тикета, а второй запрос в формате...
- 2019.05.22, 09:03
- Форум: Общие вопросы (Yii 2.x)
- Тема: В чём разница между свойствами urlManager'a 'scriptUrl', 'baseUr' и 'hostInfo' ?
- Ответы: 1
- Просмотры: 1006
В чём разница между свойствами urlManager'a 'scriptUrl', 'baseUr' и 'hostInfo' ?
Несколько раз прочитал документацию, но так и не смог понять в чём всё таки разница между этими параметрами.
Кто-нибудь может объяснить наглядно с примерами как это работает и в каких случаях я должен использовать какой параметр?
Кто-нибудь может объяснить наглядно с примерами как это работает и в каких случаях я должен использовать какой параметр?
- 2019.04.04, 14:55
- Форум: Общие вопросы (Yii 2.x)
- Тема: Входной скрипт /web/index.php отрабатывает дважды
- Ответы: 4
- Просмотры: 1210
Re: Входной скрипт /web/index.php отрабатывает дважды
Как то раз столкнулся с функцией google chrome "предсказание адреса". Очень долго не мог понять почему у меня при одном обращении к серверу на самом деле летит два запроса. Оказалось что первый запрос из-за этой функции летит в момент набора url скрипта, и второй запрос кода я уже нажимаю ...