
Eugene
14.08.2017
10:07:30
коллеги, кто использует монолитные репозитории, есть вопрос по управлению зависимостями

Den
14.08.2017
10:09:28

Eugene
14.08.2017
10:11:15
монолитные это когда в репозитории содержится более одного логического проекта
тут можно посмотреть вкратце о чем это: https://speakerdeck.com/fabpot/a-monorepo-vs-manyrepos

Google

Den
14.08.2017
10:13:02

Виталий
14.08.2017
10:30:14
Привет всем. Вопрос есть по DI. Как лучше использовать?
Di::get('modelFactory');
Di::getImplement('\Factory\Interface');
В первом случае используем соглашение о наименовании, но можно магией получать вроде $this->modelFactory;
Во втором все нагляднее, по типу аргумента получаешь реализацию, но в коде будет явный вызов контейнера
А вообще кто как пользует?

Den
14.08.2017
10:34:32

Виталий
14.08.2017
10:34:56
Это условный код, сам не люблю статику

Den
14.08.2017
10:35:05
use Defr\FtlTheme\Page\PageSeeder;
$this->call(PageSeeder::class);
Типа статик тоже )))

Виталий
14.08.2017
10:38:17
Т.е. второй вариант. Вроде
$this->getDi()->getImplement(AbstractSeeder::class);

Max
14.08.2017
10:39:09
Если механизм есть, то, только имена интерфейсов/классов.

Виталий
14.08.2017
10:42:59
А рефлексия не сильно много отожрет? Как-то опасаюсь ее в проде использовать.

Max
14.08.2017
10:44:29
Ну, надо хороший механизм с кешированием и компиляцией :)

Den
14.08.2017
10:44:59

Google

Den
14.08.2017
10:45:40
Без NS?
Или полные?

Max
14.08.2017
10:45:59
Полные

Den
14.08.2017
10:46:53
Я везде юзаю юз
Кроме пары мест

Max
14.08.2017
10:48:42
@agapovv , у вас di-контейнер, который вы сами наполняете, или абстрактная фабрика, которая по имени сервиса резолвит класс и создает его?

Aleh
14.08.2017
10:49:57
так а разве есть разница, как в сервис локатор закидывается объект?

Виталий
14.08.2017
10:50:36
Вот это я сейчас и выбираю, как лучше. Проблема в том, что проект сильно завязан на Phalcon\Di и подключение стороннего механизма затратно.

Den
14.08.2017
10:50:53

Виталий
14.08.2017
10:51:30

Den
14.08.2017
10:51:53
Или я гоню?

Aleh
14.08.2017
10:52:10
ну, относительно конечно, проще всего по классу, потому что не надо выдумывать еще одно имя

Виталий
14.08.2017
10:53:29
Мест подключения мало, а вот сервисов в DI куча, и еще будет.

Aleh
14.08.2017
10:53:57

Max
14.08.2017
10:54:19

Den
14.08.2017
10:55:19

Aleh
14.08.2017
10:55:23

Google

Виталий
14.08.2017
10:55:48
С db и логгерам, кэшами все просто. А вопрос возникает, когда есть библиотека, которая, к примеру использует файбрику моделей, и клиенту надо заменить фабрику на свою.

Aleh
14.08.2017
10:56:04
вот в js/python у вас сервис локатор по файловой системе
а в пыхе проще по fqn

Max
14.08.2017
10:57:32

Виталий
14.08.2017
10:58:13
Ну в целом, получается, что по названию интерфейсов. Сделать один сервис-фабрику Di, который будет отдавать конкретную реализацию. А если количество возрастет, заменить на механизм DI. Спасибо

Aleh
14.08.2017
10:58:26

Den
14.08.2017
10:59:06

Aleh
14.08.2017
10:59:17

Max
14.08.2017
10:59:21
Согласен, имя интерфейса универсальнее.

Den
14.08.2017
11:01:26

Виталий
14.08.2017
11:04:04
Как репозитоий заменить на другой в процессе выполнения?

Den
14.08.2017
11:04:47
setRepository метод ваще вроде

Виталий
14.08.2017
11:05:22
setRepository он же не статический? Вызывается откуда-то

Den
14.08.2017
11:05:47
А где ты менять собрался?

Admin
ERROR: S client not available

Den
14.08.2017
11:06:01
Там и вызывать надо
У меня в модели есть привязка
И еще в билдерах таблиц

Google

Den
14.08.2017
11:07:00
И деревьев тож

Виталий
14.08.2017
11:08:04
Так-то да. А если подключать это все к другому, клиентскому, коду через композер. Как из него настроить репозиторий?

Den
14.08.2017
11:08:44
В каком то объекте
Классе

Виталий
14.08.2017
11:11:14
У меня этот объект - DI контейнер. Там и репозитории и сервисы и фабрики. Выбирал как получать из него. По имени интерфейса или ключу.

Den
14.08.2017
11:12:43
Там биндинги есть в контейнере?

Виталий
14.08.2017
11:14:22
В phalcon\di я не нашел. Вот свою реализацию и пилю.

Den
14.08.2017
11:17:16
А че, у тебя уже куча кода написана?

Виталий
14.08.2017
11:17:43
Угу, и не только мной )

Den
14.08.2017
11:18:33
Ухх

Oleg
14.08.2017
12:08:46

Aleh
14.08.2017
12:10:18
вообще обсуждение пыховских библиотек оставлять в чатике пхп

Виталий
14.08.2017
12:10:21
О нем речь, только там биндингов я не вижу

Den
14.08.2017
12:11:04

Виталий
14.08.2017
12:11:06

Den
14.08.2017
12:12:52
Хз, я там к ларкиным привык. Тем более юзаю апгрэйженый провайдер. Меня всем устраивает

Saen
14.08.2017
13:24:42
Тут есть повернутые на SOLID ?
ну точнее, как реальны мир уживается с SOLID ?
по моим наблюдениям со скрпом

Aleh
14.08.2017
13:25:14
вообще хорошо уживается

Google

Aleh
14.08.2017
13:25:17
не понимаю вопроса)

Evgeniy
14.08.2017
13:26:50
повернутых нет, но solid это хорошая штука которой выгодней придерживаться, чем не придерживаться, имхо

Dmitriy
14.08.2017
13:27:08