• Как в Symfony сделать предварительную инициализацию модуля (бандла)?

    index0h
    @index0h
    Григорий Васильков
    а как насчет бандла?

    Не нужен вам бандл, app - это и есть ваш бандл.

    Это в каждом бандле создается кернель и весь контейнер конфигурится оттуда?

    Почему же? Все сторонние бандлы, что вы используете в своем приложении отлично конфигурируются централизированно.

    подожди, какой автогенерации, каких параметров?

    То, что внутри parameters.yml - это настройки конкретного окружения. Например доступы к конкретно вашей тестовой БД, конкретно ваш хттп домен и т.д. На продакшне parameters.yml будет свой.
    Автогенерация нужна на этапе диплоя на дев машинах ваших колег. Что бы каждый руками этого не делал.

    соотственно мне нужно добавить в бандле параметры по умолчанию, а в конфиге более "старшего" приложения задать параметры которые будут предпочтительны, позволяя другим разработчикам их поменять под себя.

    Нет. Вы используете бадл в своем приложении, и там же и конфигурируйте его. Сторонние бандлы по хорошему у вас все равно будут в vendor каталоге.

    Там нужно создать обьект-менеджер, сохранить его (в будущем это сервис "дб"), в него прокинуть конфиги

    Я ж вам пример привел, как зарегать в вашем апликейшне сервис вашего капсуля. Какие бандлы, какие экстеншны, на кой оно вам надо? Хотите капсуль - юзайте капсуль, лишними обвязками вы только себе жизнь усложните.

    Тут же весь конфиг так и пестрит тем что я должен обязательно сервису дать имя в дот-нотации, чего? Я зачем отвыкал, тренд был, а теперь кончился?

    Дык юзайте имя класса, в чем проблема?

    Таким образом я пытаюсь понять как реализовывать такие вот модули, которые требуют предварительной настройки

    Еще раз, если вы хотите создавать именно модули для публикации, без аппликейшнов - это одно.
    Если вы хотите именно у себя в апликейшине это использовать - это совсем другое.
    Для апликейшна НЕ НАДО ПЛОДИТЬ БАНДЛЫ, ваш аппликейшн уже таковым является.

    Документация предлагает создать параметр $config, который прокинуть через
    ->arg('array $config', $config);
    но при этом значения этого конфига я хочу прокидывать из вагранта через

    Документация предлагает вам оформить настройки, которые требуются для собственного независимого бандла. Вы, как создатель бандла не знаете, да и не контролируете, откуда будут браться эти настройки, из yml, xml, env да хоть php.

    или собственного DI где использовались колбэки для того, чтобы получить из $di зависимости и прокинуть их на свои места.

    Приведите пожалуйста пример, когда вам вот по зарез нужно получить именно контейнер, не сервис типа логгера, или вашего капсуля, а именно контейнер со всеми возможными зависимостями вашего проекта.

    ни как прокинуть конфиги с верхних слоев вниз - ничего, ни как сделать полностью отдельный модуль, который не знает про внешнее приложение почти ничего - ни слова, все блоги шустрят настройками виртуальных машин и чем угодно кроме такой банальной вещи как я пытаюсь найти

    Настройки указываются в services.yml для конкретного сервиса, там где они будут использоваться. Зачем их прокидывать в верх, или вниз? Если вам надо одни и те же настройки для двух сервисов - в чем проблема, опишите для двух.

    Я понимаю что я разбиваю проект на куски, каждый из которых будет делать отдельный человек до тех пор, пока они не понадобятся друг другу. Каждый кусок будет бандлом. Каждый кусок при желании можно вынять и поставить в новую симфони и повесить на отдельный домен.

    Если так, вам точно это нужно в одном проекте?))

    Это все для того чтобы уменьшить моменты в которых двум разным людям приходится одновременно писать один и тот же файл и потом резолвить что оставить, а что сохранить.

    Вы выбрали очень неудачное решение этой проблемы. Каждый пилит свою ветку, в момент, когда она готова - отправляется на ревью и вмердживается. Тот, кто последний должен втянуть себе изменения и пофиксить конфликты.
  • Как в Symfony сделать предварительную инициализацию модуля (бандла)?

    index0h
    @index0h
    Григорий Васильков Для вагранта есть следующий подход:
    1. Вагрантовый синк стоит отключаить вовсе. Он очень медленный, особенно когда симфони начинаете генерить кучу кэша.
    2. Настроить диплой в вашей IDE при изменении.
    3. Завести parameters.yml и parameters.yml.dist. Первый заигнорен в git, второй коммитится. В dist файле добавьте конфиги по умолчанию именно для вашего dev окружения.

    Для автогенерации параметров - есть годная штука https://github.com/Incenteev/ParameterHandler , о ней тут уже упоминали.
  • Как в Symfony сделать предварительную инициализацию модуля (бандла)?

    index0h
    @index0h
    BoShurik, более-менее годный use-case для env - это параметризация через переменные окружения в Docker. Для консольных приложений полезность фичи притянута за уши.
  • Как в Symfony сделать предварительную инициализацию модуля (бандла)?

    index0h
    @index0h
    Григорий Васильков, env вам скорей всего не надо, хайп уже прошел, это очень переоцененная фича
  • Как в Symfony сделать предварительную инициализацию модуля (бандла)?

    index0h
    @index0h
    @gzhegow
    Короткий ответ на вопрос "по другому невозможно"?

    Почему же, возможно.

    Если ориентироваться на доку, заводиться это должно примерно так (services.yml):

    Illuminate\Database\Capsule\Manager:
        calls:
          - [addConnection, ['%mysqlConnection%']]


    Здесь mysqlConnection - это параметр в parametrs.yml содержащий массив для addConnection.
    Если я правильно понял - контейнер и диспатчер нужно подключать отдельно.

    Там, где вам надо - указываете аргумент с классом Illuminate\Database\Capsule\Manager в конструкторе и радуетесь жизни.

    Если мы делаем разные модули в рамках монолита как подключать свои собственные сервисы не изменяя файл который правит коллега?

    Конфликты в services.yml и подобных иногда случаются, но это не то что бы прям бида.

    И параметр получить $this->config? или они здесь только, кхм, "внедряются"?

    Внедряются, конфиг отдельно нужен ну очень в редких ситуациях.
  • На сколько может быть долгим запрос?

    index0h
    @index0h
    Игорь, можете привести пример запроса фильтрации, использующего feature_values?
  • На сколько может быть долгим запрос?

    index0h
    @index0h
    Если ваша таблица под серьезной нагрузкой - вероятно она забъет innodb буфер, остальные запросы пострадают
  • На сколько может быть долгим запрос?

    index0h
    @index0h
    Игорь, Шо занадто - то не здраво, это понятно. Правда ваш пример с дубликатами х61к ни чем не лучше. Индекс по name вам в принципе ничего не даст, так как cardinality будет очень низким. В итоге запросы, которые включают в себя фильтрацию по name у вас все равно будут с диска, а учитывая лавинообразный характер вставок - вы очень рискуете.
  • На сколько может быть долгим запрос?

    index0h
    @index0h
    Игорь Либо вы немного усложняете запрос, либо паритесь с потерей производительности и сложностями миграций
  • Проект под NodeJS для изучения возможностей платформы?

    index0h
    @index0h
    Dilun, зачем плодить свой скоп пакетов, если можно заюзать чужой?)) node_modules сам собой не разбухнет.
  • Как правильно сохранить дерево в MongoDB?

    index0h
    @index0h
    Sport-code,

    Для тяжелых запросов используйте asArray (или как-то так для выборок, не помню, как в yii2 называется).
    Смотрите explain тяжелых запросов к БД.
  • Как правильно сохранить дерево в MongoDB?

    index0h
    @index0h
    В момент синхронизации вы передаете на бэк список измененных элементов, у каждого такого элемента должна быть (возможно пустая) ссылка на его родительский элемент. Со стороны бэка вы обновляете в коллекции каждый из элементов
  • Как уже на собеседовании понять, какое в компании качество кода?

    index0h
    @index0h
    yuopi

    он не с потолка вопросы берет, а спрашивает то, что применяется на практике у них.

    Это очень зависит от компетентности интервьюера.

    Очень часто бывают ситуации, когда интервьюер задает вопрос в стиле "вы работали с технологией X, а с Y?", хотя ответ не важен, так как все равно в проекте это не будет использоваться. Особенно это касается unit тестирования: "имеете ли вы опыт написания unit тестов?", допустим вы ответили "да", дальше приходите на проект, а там покрытия тестами, либо просто нет, либо стремится к нулю.
  • Как уже на собеседовании понять, какое в компании качество кода?

    index0h
    @index0h
    Если вопросы "сложные", ООП к примеру, скорее всего там нет говнокода.

    Это ни как не связано
  • Как уже на собеседовании понять, какое в компании качество кода?

    index0h
    @index0h
    Alline,
    Мне кажется, если спросить про гика, исполнителя и головолома, работодатель напряжется) Я бы напряглась

    Я задавал этот вопрос на множестве собеседований и как соискатель и как интервьюер, были ли удивления - самую малость, были ли напряжения - нет. Интервьюер должен знать какого человека ищет, если не знает - это плохой маячок. На самом деле это вопрос о характере задач, которые требует выполнять та, или иная должность. Чаще всего вы не найдете подобной информации в вакансии. А она важна, причем очень.
    Примеры:
    * Исполнитель - сайты визитки, где вообще похрен как.
    * Исполнитель+Гик - скорее всего это небольшие проекты, до полу года, качество - ну такоэ, потому что на вчера надо... есть, немного свободы выбора тех. стека
    * Исполнитель+Головолом - похоже на крупный/старый проект, не знаю как по качеству, но "головоломство" пойдет на разгребание чужого.
    * Головолом+Гик - вероятно что-то более-менее новое и крупное, либо не большое, но сложное.
    ...
    Грубо говоря суммируйте ту информацию, что вам рассказывают про проект с тем, какая команда уже есть с тем, что хотят от вас. Так вы поймете, надо ли оно вам.