@prophp7

Страница 117 из 1387
Jan
08.12.2016
22:08:50
Причем всё на ::getInstance()

Vladimir
08.12.2016
22:09:06
Ок, вот db это именно подключения к базе? Вместе с паролями и базами данных?

Или всё таки DB это просто обёртка над базой, а настройкой подключений владеет само приложение?

Jan
08.12.2016
22:10:20
Ну, пароли на проекте, конечно, и не под git

Google
Jan
08.12.2016
22:10:43
Настройка и подключение — тоже ядро.

На подпроекте только конфиги

Viktor
08.12.2016
22:10:55
Ян, на митинг, епт!

Jan
08.12.2016
22:11:03
Хуитинг)

Viktor
08.12.2016
22:11:13
Все ждут тебя :)

Jan
08.12.2016
22:13:59
Или всё таки DB это просто обёртка над базой, а настройкой подключений владеет само приложение?
На подпроектах для таких вещей только конфиги. Из кода можно вызывать, скажем, Redis::getInstance() и работать с редисом.

Aleksandr
08.12.2016
22:15:15
На подпроектах для таких вещей только конфиги. Из кода можно вызывать, скажем, Redis::getInstance() и работать с редисом.
в таком случае тут зависимость от ядра, и можно вообще вопрос об гексагоне закрывать)

Sergey
08.12.2016
22:15:52
но мне все же интересно послушать почему было написано это самое "ядро"

Jan
08.12.2016
22:15:57
в таком случае тут зависимость от ядра, и можно вообще вопрос об гексагоне закрывать)
Почему? Я бы мог хранилище заинтерфейсить, например. Или это бессмысленно?

Vladimir
08.12.2016
22:16:32
На подпроектах для таких вещей только конфиги. Из кода можно вызывать, скажем, Redis::getInstance() и работать с редисом.
Раз так то никто не мешает добавлять ваше "ядро" в приложение через composer, указывая версию в ввиде ревизии или тэга. И использовать его на равне с другими. Остальное всё тоже подключать через composer. У каждого проекта свой список зависимостей, и соответственно изменения в одном не влияют на изменения в другом. .... profit

Sergey
08.12.2016
22:16:40
лучше задаться вопросом "что тебе сейчас мешает и что можно с этим сделать".

Aleksandr
08.12.2016
22:16:42
Почему? Я бы мог хранилище заинтерфейсить, например. Или это бессмысленно?
ты должен в рамках модуля создать интерфейс хранилища, а в рамках приложения его реализовать. инверсия

Google
Sergey
08.12.2016
22:17:06
причем именно мешает, ну то есть ты работаешь не продуктивно, боришься с ядром где-то

Jan
08.12.2016
22:18:39
лучше задаться вопросом "что тебе сейчас мешает и что можно с этим сделать".
Чего я хотел бы добиться, так это слабой связанности компонентов и тонких контроллеров.

Sergey
08.12.2016
22:18:59
Jan
08.12.2016
22:19:02
И избавиться от повсеместных ::getInstance()

Aleksandr
08.12.2016
22:19:08
Чего я хотел бы добиться, так это слабой связанности компонентов и тонких контроллеров.
в модулях используй интерфейсы, в рамках приложения их реализуй.

Sergey
08.12.2016
22:19:11
возьми какой PHP-DI

и не парься

return [ Foo::class => function () { return Foo::getInstance(); } ]

и радуйся

Sergey
08.12.2016
22:21:24
$container->get(Foo::class)

и соответственно уже можно будет инджектить это куда надо, и автовайринг есть

а далее уже адаптеры, интерфейсы....

модульность

крути верти как хочешь

всеравно жизнь боль

Jan
08.12.2016
22:24:19
Боль это да)

Благодарю за наводку, очень полезно.

Sergey
08.12.2016
22:26:16
тут есть люди которые по многу API пишут?

Google
Sergey
08.12.2016
22:26:30
а то мне общаться нескем

только вон @YuraLukashik

Vladimir
08.12.2016
22:26:49
Сейчас уже увы только для себя =(

Sergey
08.12.2016
22:27:15
меня дико удручает ситуация с инструментами для PHP

все какое-то... не такое

Yura
08.12.2016
22:27:30
да норм)

Vladimir
08.12.2016
22:27:53
Я последнее время смотрю в сторону асинхронщины, и там прям печаль

Yura
08.12.2016
22:28:05
в php?

норм же

Vladimir
08.12.2016
22:28:16
В php

Не норм

Yura
08.12.2016
22:28:24
а что не норм?

Sergey
08.12.2016
22:28:57
В php
https://github.com/elazar/asynchronous-php

Vladimir
08.12.2016
22:29:16
Вот пример. Я хочу взять из хранилища некую сущьность с данными. И для этого мне чуть ле не свлю ORM/ODM писать нужно

Что бы модель не знала где и как она храниться

Ничего готового асинхронного нет

Yura
08.12.2016
22:30:04
обычная хорошая орм мало где есть

а ты хочешь асинхронную

Vladimir
08.12.2016
22:30:30
Ну так-то доктрина меня почти всем устраивает

Google
Vladimir
08.12.2016
22:30:42
Да и доя key-value есть решения норм

Yura
08.12.2016
22:30:43
ну меня слабо

Sergey
08.12.2016
22:30:49
у меня как-то раз была безумная мысль сделать доктрину асинхронной

для этого не много надо

Yura
08.12.2016
22:31:00
драйвер есть

для базы

Sergey
08.12.2016
22:31:02
просто берешь и делаешь свой драйвер для dbal

Yura
08.12.2016
22:31:06
его ровно впилить

Vladimir
08.12.2016
22:31:08
Ха

Admin
ERROR: S client not available

Vladimir
08.12.2016
22:31:12
Не просто увы

Sergey
08.12.2016
22:31:16
почему не просто?

Yura
08.12.2016
22:31:17
довольно просто

смотря с чем сравнивать

если с нуля орм

Sergey
08.12.2016
22:31:33
саму ORM причем делать асинхронной смысла ровным счетом никакого нет.

Yura
08.12.2016
22:31:33
то просто изичка

Sergey
08.12.2016
22:31:51
асинхронным надо делать только взаимодействие с I/O

а всякие там юнит оф ворки пусть себе синхронно гоняются

Google
Yura
08.12.2016
22:32:11
ну да, но из-за этого проектировать по-другому нужно

Vladimir
08.12.2016
22:32:13
Там работы ужас сколько

Yura
08.12.2016
22:32:20
уже сделано

I/O

Vladimir
08.12.2016
22:32:28
Я думал по быстрому что-то типа https://github.com/bravo3/orm/ переписать на асинхронный лад

Но это же треш

Sergey
08.12.2016
22:32:35
https://github.com/doctrine/dbal/issues/2404

Yura
08.12.2016
22:33:24
да, доктрина слишком стабильная, чтобы брать эти недавно написанные тулзы

Sergey
08.12.2016
22:34:13
но сделать свой драйвер тебе никто не мешает)

Vladimir
08.12.2016
22:34:15
Я вот честно сказать к стыду своему не в курсе как работае async драйвер mysql в php Он на callbacks основан?

Так драйвер нужно ещё использовать правильно

Yura
08.12.2016
22:34:43
промисы есть

Sergey
08.12.2016
22:34:49
https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php

~300 строк кода

Vladimir
08.12.2016
22:35:19
Тебе промис драйвер возвращает а не значение что ты ожидаешь

Yura
08.12.2016
22:35:25
да

можно и колбеками

Sergey
08.12.2016
22:35:36
при помощи yield можно сделать так, что бы драйвер возвращал значения

но прерывал выполнение

и давал поработать кому-то еще

Yura
08.12.2016
22:35:50
при помощи yield можно писать в синхронном стиле

Страница 117 из 1387