
Sergey
26.01.2018
21:06:08
про сеттеры и геттеры накидывать наверное бесполезно

Sergey
26.01.2018
21:21:03
еще хз че в этом году будет на конфе
было б збс если б nikic привезли
или jpauli

Google

Evgen
26.01.2018
21:42:25
ребята, такой вопрос.
Есть сущность Database, которая представляет базу данных, которую можно сдампить и восстановить из дампа, причём в полях сохраняется информация вроде даты последнего восстановления после dump или import. Хочется юзать что-то вроде $db->import($pathToDump) и $db->dump($pathToDump). Нужно ли в таком случае передавать в методы объект, который действительно будет делать работу с базой и файлами? Или создавать отдельный объект, который будет вызывать эти методы и делать работу с файлами?
Вот с мейлером хорошая аналогия была приведена, где $mailer->send(email) более предпочтительно, чем email->send. По той же причине $dbManager->import, более предпочтительно чем entity->import. Емейл не должен знать о способах его доставки, так же и сущность базы данных - это только модель и как раз по solid, тоже тут уже озвученному, а вернее по принципу "S", ее н особо должно волновать способы ее импорта/экспорта


Ivan
26.01.2018
21:53:14
и какой у email интерфейс?
у email.send() очевиден
если я в методах сущности вызываю new Process(...) или new \PDO(...) это тоже беда?
в методах executeCommand и connectToDatabase
app->execCommand('rm -rf var/log');
app->connectToDatabase()->query('show full processlist');

Sergey
26.01.2018
22:14:35
когда я увидел иньекцию сервисов через дабл диспатч в экшены, то подумал что это безумие
а щас перевожу на них все и кажется не таким уж и плохим

Ivan
26.01.2018
22:19:07
обычно контроллер имеет какие-то общие зависимости для всех экшнов
такие идут в конструктор
частные - через аргументы

Evgen
26.01.2018
22:20:34
Так а экшены и сущности это всетакиж две разные вещи

Google

Evgen
26.01.2018
22:22:12

Ruslan
26.01.2018
22:27:05
Всем привет! А есть возможность использовать easyadminbundle для сторонних баз, без энтити. Использовать dbal и т.д.

Sergey
26.01.2018
22:28:52

Ruslan
26.01.2018
22:28:56
Пример: есть vps1 с базой.

Sergey
26.01.2018
22:29:05
в конструктор отдаю то что нельзя автовайрингом сделать

Ivan
26.01.2018
22:29:45
В use все видно

Sergey
26.01.2018
22:32:06
можно, но это будет очередной $this->get(...)
от которого я пытаюсь уйти

Ivan
26.01.2018
22:32:22
Ну или параметры
Да и зачем следить за зависимостями в контроллерах?

Sergey
26.01.2018
22:35:03
я вот сижу щас смотрю на контроллер у которого 18 зависимостей в аргументах

Ivan
26.01.2018
22:35:29
В пределах одного экшна, да

Sergey
26.01.2018
22:36:42
это не считая всяких твигов и прочего)

Petr
27.01.2018
04:42:22

Pavel
27.01.2018
06:24:29
http://symfony.com/blog/new-in-symfony-4-1-invokable-event-listeners

Ihor
27.01.2018
08:23:09

Petr
27.01.2018
08:24:09
У него есть только свойства кому, куда, содержимое и т.п.

Google

Ihor
27.01.2018
08:26:18
Да, что-то я с утра не понял ))

Evgen
27.01.2018
10:31:54

Sergey
27.01.2018
16:51:34
без единого публичного сервиса собирается контейнер
инлайнит он конечно жестко

Pavel
27.01.2018
20:34:35
При установке phpunit через flex нет самого phpunit, когда добавляешь в зависимость сам пакет, flex пишет мол удалите и установите через flex. wtf?

Andrew
28.01.2018
08:20:47
Подскажите пожаулйста, как можно автоматически сделать доступным
https://github.com/thephpleague/tactician-bundle
во всех контроллерах, а так же как динамически связывать commands и их handler, потому что в сервисе уже более 200+ комманд, и их становиться сложно поддерживать.
так как каждый раз прописываю такое
# Register TacticianCommandBus Handlers for Commands to Bus
app.handler.createuserbuscommandhandler:
class: App\Handler\CreateUserBusCommandHandler
tags: [{name: tactician.handler, command: App\Command\CreateUserBusCommand, typehints: true}]
autowire: true
#Register Controllers where Command Bus service will be injected
App\Controller\RegistrationController:
arguments:
- '@tactician.commandbus.default'
calls:
- [setContainer, ['@service_container']]
Выходит довольно громоздко

Andrew
28.01.2018
08:47:08

Andrew
28.01.2018
08:47:50
Скажите пожалуйста, это что "Compiler Pass'ы"?

Andrey
28.01.2018
08:57:31
Во время сборки контейнера отрабатывают
Загугли, в доке есть

Andy
28.01.2018
08:58:37
Они автоматом могут проставлять тэги, например

Andrew
28.01.2018
09:00:42
https://symfony.com/doc/master/service_container/compiler_passes.html

Andrew
28.01.2018
09:28:04


Andrew
28.01.2018
09:30:12
@andrewkovalyov
_defaults:
autowire: true
autoconfigure: true
public: false
А в контроллерах
И если убрать из сервисов передачу ComandBus для каждого контроллера, будет везде выдавать ошибки
Cannot autowire service RegistrationController": argument "$commandBus" of method "__construct()" references class "League\Tactician\CommandBus" but no such service exists. It cannot be auto-registered because it is from a different root namespace.

Google

Andrew
28.01.2018
09:34:08

Andrew
28.01.2018
09:34:27
CommandBus
namespace League\Tactician;
class CommandBus
{
Symfony 4.0.3

Andrew
28.01.2018
09:36:03
CommandBus
посмотри лучше через debug:container, у тебя эксепшн говорит прямо противоположное
а, еще вариант может быть с порядком подключения бандлов — твой appbundle должен быть подключен позже этого iirc

Andrew
28.01.2018
09:42:54
1 - я перенес бандл в самый низ списка
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
....
League\Tactician\Bundle\TacticianBundle::class => ['all' => true],
]
2 - пришлось временно убрать из конструктора CommandBus что бы выполнить комманду debug:container
В поле "Class name" нет ссылки на CommandBus class, а значит, он не зарегестрирован
Так же попробовал сделать debug:container log, всего 51 алиас на сервисы, CommandBus нет в списке.

Admin
ERROR: S client not available

Bohdan
28.01.2018
09:45:11
хееей
там ведь есть другой тип хендлеров
смотри доку
можно настроить их так, что команда будет выбираться по тайпхинту методов в хендлере
и тогда надо будет регистрировать только сами хендлеры + давать им теги

Andrew
28.01.2018
09:46:26
да я читал, у меня не работает
вроде такого?\
# Register TacticianCommandBus Handlers for Commands to Bus
app.handler.createuserbuscommandhandler:
class: App\Handler\CreateUserBusCommandHandler
tags: [{name: tactician.handler, command: App\Command\CreateUserBusCommand}]
autowire: true

Daniel
28.01.2018
09:48:02
Ребята, вопрос слегка по менеджменту. Когда аналитик лезет в базу данных и начинает продумывать таблицы и ключи - это типа data driven programming?
И как вообще возможно жить с data driven programming-ом (если оно так называется конечно)

Bohdan
28.01.2018
09:48:22
tags:
- { name: tactician.handler, typehints: true }

Google

Daniel
28.01.2018
09:48:49
Когда ты пишешь сущности и т.п.
Не делать же экспорт в код из базы данных
Отсюда ощущение, что data-driven-programming (...) старое говно, а анал долбоебан

Andrew
28.01.2018
09:49:23
@thatside так ведь все-равно в сервисах много комманд)

Bohdan
28.01.2018
09:49:24
и хендлер такого типа
public function createClientInvoice(CreateClientInvoice $command)
при этом его имя любое, важен тайпхинт

Andrew
28.01.2018
09:49:39
А когда аналитик стал DBA?

Daniel
28.01.2018
09:50:00
Как такового DBA нету просто
Допустим даже есть DBA
Как с этим жить-то?

Bohdan
28.01.2018
09:50:24
у меня в сервисах команды не упоминаются, только хендлеры
но ведь ты можешь сделать вообще автоконфигурацию и использовать resource и регистрировать их все в папке как сервис с заданными тегами

Andrew
28.01.2018
09:51:31
Как такового DBA нету просто
Ему эти таблицы и ключи зачем нужны? Если для аналитики, как вариант ты ему можешь строить отдельную базу-проекцию основной и пусть там веселится

Bohdan
28.01.2018
09:51:54

Andrew
28.01.2018
09:51:55
@thatside Что то вроде такого я и пытаюсь сделать, авторегистрацию комманд и их хендлеров, и что б каждый раз не надо было регестрировать контроллер и передавать туда
'@tactician.commandbus.default'

Daniel
28.01.2018
09:51:59
Смысл в том, что сейчас он ответственный* за новый функционал и уже создал таблицы и требует, чтобы в базе все так и было

Andrew
28.01.2018
09:53:22
@thatside сейчас я вынужден регестрировать каждый раз команду в сервисах и делать ей тайпхинт для ее хендлера. А еще, вынужден регестрировать каждый контроллер и пердавать туда '@tactician.commandbus.default'

Bohdan
28.01.2018
09:53:59
что - то у тебя странно вообще...

Daniel
28.01.2018
09:54:05
Есть ли такое вообще, что изначально чувак (анал или DBA или еще кто-то) делает таблицу, а вы потом делаете из всего этого говна сущности?
Просто ладно бы я писал SQL скриптики
Так у меня ж доктринка, мне че, SQL + RSM теперь юзать

Andrew
28.01.2018
09:54:52
@thatside и вышло у меня очень много сервисов, только для ComandBus

Bohdan
28.01.2018
09:54:52