mr.
Niko
@nekit44 shell_exec в php
KoJIT
Ребя, кто с большим опытом, оцените ход мыслей:
После того, как код не смотря на все мои старания писать чисто опять превратился в лапшу, я подумал о таком подходе...
Есть некоторая сущность, у неё стандартные события. Активируем транцзакции на все операции, триггаем эвенты, вешаемся на эти эвенты и выполняем какую-либо логику у связанных сущностей.
Вроде как в DDD так делается.
Какие подводные, кроме очевидно того, что будет каша из обработчиков?
транзакции работаю только на эвентах insert, update, delete по дефолту. Эвенты на мой взгляд плохи тем что сложно потом отследить исполнение, лучше сделай отдельные сервисы и напиши ручками всю логику
mr.
mr.
Niko
посмотри еще функции, рядом с этой
Функции запуска программ
escapeshellarg
escapeshellcmd
exec
passthru
proc_close
proc_get_status
proc_nice
proc_open
proc_terminate
shell_exec
system
есть которые возвращают значение, есть которые не возвращают ничего
Nikita
спасибо
who are you
ему же надо по расписанию запускать
who are you
а не способ запуска из скрипта команду крона
Good
Если по расписанию, то крон
Niko
пусть определится что запускать, а по времени уже найдет как посавить
Niko
да, крон
Good
МОжно консольные екшны, можно и обычные
Nikita
нужно консольную чтоб могла обработать данных длительно и контроль от повтороного запуска
mr.
Good
Блин, я вот буду начинать писать свой магазин, и не могу определится - делать на basic шаблоне, или на advanced?
Good
Вроде где-то был доклад, где про адвансед шалон расписано, но не могу найти
Good
Вот не знаю, нужно ли оно мне сейчас
Galymzhan
Ребя, кто с большим опытом, оцените ход мыслей:
После того, как код не смотря на все мои старания писать чисто опять превратился в лапшу, я подумал о таком подходе...
Есть некоторая сущность, у неё стандартные события. Активируем транцзакции на все операции, триггаем эвенты, вешаемся на эти эвенты и выполняем какую-либо логику у связанных сущностей.
Вроде как в DDD так делается.
Какие подводные, кроме очевидно того, что будет каша из обработчиков?
главное не уйти из спагетти-кода в лазанью-код. плюс нужно сохранить прозрачность логики системы, а затем еще и юнит тесты написать на это все
Nikita
Good
mr.
mr.
Nikita
who are you
объясните по русски чо такое хендлеры )))
mr.
Good
Хендлер - ф-ция обработчик собітия
mr.
handler по ингришу еси
Anonymous
Всем привет !
Anonymous
Fatal error: Access level to Menu::afterSave() must be public (as in class yupe\models\YModel) in /home/uzbrandu/essencerecover.uz/protected/modules/menu/models/Menu.php on line 0
Anonymous
Что за ошибка ? На Yupe CMS
Anonymous
Неа
Vladimir
печаль)
Vladimir
ну попробуй, там все написано...что и где неправильно)
The Ant
нахуй, сразу в чят
mr.
mr.
Да вы совсем обленились, судари.
Anonymous
mr.
Я не понимаю, как чел может работать программистом, если даже не может и ленится перевести тест ошибки...
The Ant
ну тыжпрограмист! Вот и переведи )
Anonymous
Я переводил но тут нечего не понятного
mr.
mr.
Если это не джун с опытом в неделю, то ВСЁ ОЧЕНЬ ПЛОХО
KoJIT
У тебя есть опыт?
Ага, дебагинга эвентов, мало приятного.
Просто получается это эвенты это что-то на подобии динамического добавленя кода на выполнение и юзать думаю стоит только тогда когда не можешь переопределить нужную реализацию.
Ꝟꭵtaꝇꝩ
The Ant
Ꝟꭵtaꝇꝩ
Значит придираюсь) https://cs8.pikabu.ru/post_img/2016/02/27/6/1456566053134011965.png
KoJIT
Lee
Dmitriy
Dmitriy
а другое какое мнение ?
mr.
@KoJIT говорит отлаживать адово.
Dmitriy
События ? с чего это ? xdebug не плохо это отлаживает
Dmitriy
у меня бот полностью на событиях
mr.
Что за бот?
mr.
Наверное, сложно отлаживать цепочку событий.
mr.
Хоя хз, по мне так спагетти не лучше. С событиями хочешь не хочешь low coupling получается, модель как микросервис)))
Dmitriy
3 обработчика и 1 событие.
Ниже пример как у меня
Event::on(
CreateWubookReservationEvent::class,
self::EVENT_CREATE_WUBOOK_RESERVATION, [AirBnBPaymentHandler::class, 'handler']);
Event::on(
CreateWubookReservationEvent::class,
self::EVENT_CREATE_WUBOOK_RESERVATION, [HostelWorldPaymentHandler::class, 'handler']);
Event::on(
CreateWubookReservationEvent::class,
self::EVENT_CREATE_WUBOOK_RESERVATION, [ExpediaPaymentHandler::class, 'handler']);
Если не юзать очереди. То с начала выполнится
AirBnBPaymentHandler
потом HostelWorldPaymentHandler
и т.д.
Мы легко это дебажим
Dmitriy
даже если die поставить на 2 обработчике . Выполнится первый, но не 3й
Dmitriy
За одно мы решаем куча проблем со связанносью кода
Good
Привет! Есть вопрос: вот если я разрабатываю на адвансед темплейте с модулями, и у меня есть, скажем модуль блога, у него есть фронтенд и админка, а еще общие модели или другие компоненты. Так что. тогда в каждой папке (фронтенд, бекенд и коммон) будет папка модуля блог? Или как?
Good
В бейсик шаблоне просто одна папка, и все, а тут не совсем понятно
The Ant
Good
Я просто до сих пор на бейсике только делал, вот хочу попробовать посложнее) Там вроде все понятно. только этот момент не ясным остался
who are you
Не обязательно
Good
Что не обязательно?
SiZE
адвансед это два бейсика + common )
Good
Так что, тупо отдельные модули всюду? И в коммон тоже, выходит
SiZE
common - общий - понимать буквально
Good
Я понимаю