spotifi: между модулями одной программы, даже зачем так широко между горутинами просто как передать контекстно-зависимые данные и при этом быть уверенным, что основной процесс не закончился?
spotifi: "используешь? ;)" - Использую, не представляю как без него. В GAPP давно уже net/context, но суть не в этом, как вы контекстно-зависимые данные между модулями передаёте?
Melodic: Не, юзать интерфейсы дело благое, я сейчас про сервисы говорю) Можно перед каждой моделью на будущее ставить пленку интерфейса и пользоваться только его методами в сервисе, а в контроллере общаться только с сервисом. Мой ответ на топик подразумевает что на примере SearchModel это всё делается в данном фреймоворке именно так, ну или почти. Т.е. случаи что вам придётся менять модель - очень редки, а если и придется, то достаточно подправить пару строк в SearchModel, а если это фича или ежедневная операция, то и действия очевидны - вынести используемые зависимости в интерфейс и работать через него. Делал что-то подобное ранее, пришлось просто написать свой Data Provider www.yiiframework.com/doc-2.0/guide-output-data-pro... Суть феймворка немного другая чем может предложить Service Layer, имхо, конечно, но думаю многие согласятся (погуглил на эту тему).
Melodic: не вижу проблемы поменять модель в сервисе. Кстати ваш сервис зависим от БД, если хотите этого избежать, то как сами нарвались на эту проблему ))
А на счёт юзеров, это предусмотрено фреймворком. www.yiiframework.com/doc-2.0/yii-web-identityinter... и в настройках можете указать свой IdentityInterface, который будет работать с чем вам угодно, тем самым можно переключиться, например, из в БД в файлы сменой одной строки в конфиге.
Это часть из его Yii2-user. https://github.com/dektrium/yii2-user/blob/master/... тут может что-то прояснить ситуацию. А вообще очень похоже на стандартный rbac от yii, так-что неплохо бы понять как он работает, а уже потом прочувствовать другое
Создание view лучше бы через миграции пропустить.
Ваш способ довольно простой, но очень жёсткий, что будете делать, когда необходимо что-то подправить?
Порекомендовал бы через QueryBuilder родной сделать
js и Python разные "подпроекты" в одном проекте, разные сервера под них поднимать, из js '/api' проксируем на Python во избежания CORS и всё. P.S. Под питоном имею в виду вашу среду и js - NodeJs, конечно же.
Не за что, только учтите, что это, так сказать, необходимый минимум. Неплохо было бы добавить автоматическое тестирование , развертку приложения без потери связи с ним и тд и тп. В нэте полно статей и решений на тему развёртки и деплоя приложений.
Если вам нужен только этот момент, то проще всего попытаться брать json. Если нет вариантов, то кажется решением будет только полноценный JS парсер. json и Js Object совершенно разные, просто в презентативном виде выглядят похоже.