@symfony_php

Страница 442 из 1418
Alexander
04.12.2017
08:47:53
ACL убрали в 4 симфони?

Alexey
04.12.2017
08:48:03
Из коробки

https://symfony.com/doc/current/security/acl_advanced.html

Alexander
04.12.2017
08:49:27
фух

Google
Alexander
04.12.2017
08:50:05
Алексей, а можешь на пальцах про флексы расказать? что для чего и зачем?

Alexey
04.12.2017
09:05:07
Алексей, а можешь на пальцах про флексы расказать? что для чего и зачем?
flex - новый способ установки и управления зависимостями в виде composer плагина. 4-ка с нуля устанавливается с минимальным набором функционала. Весь остальной подключется, через композер. В симфони определены рецепты для flex и сначала композер будет обращаться к серверу Symfony Flex, а если рецепт не найден, будет попытка загрузить пакет из composer репозиториев. Рецепты носят простое имя, напирмер, mailer, что является недопустимым composer пакетом. Уставнока SwiftmailerBundle composer require mailer . Также есть изменения в структуре проекта и вместо бандлов в src/, используются просто нэймспейсы.

после загрузки рецепта он сам прописывается в концигурацию и может создать свои файлы конфигурации

не нужно теперь ручками делать

Sasha
04.12.2017
09:36:09
а если рецепта нет? может ли он автоматом просто подключить бандл?

Andrey
04.12.2017
09:37:00
да, добавит в bundles.php файлик может упасть на cache:clear команде и не добавит в .env переменные

Sasha
04.12.2017
09:38:31
правильно ли я понимаю что бандлы в 4 уже не нужны?

какое решение для приватных репозиториев под flex?

Andrey
04.12.2017
09:39:42
Их смысл как бандлов может нивелироватся, т. к. они предназначались как конфигуратор по подключению 3rd party библиотеки в проект, т. к. это может перейти на ответственность рецептов

Pavel
04.12.2017
09:39:53
какое решение для приватных репозиториев под flex?
посмотри твиттер фабьена, он что-то писал про приватные пакеты для флекса

100% есть

Sasha
04.12.2017
09:40:07
раньше когда разбирался в теме много шуму по этой теме было

Andrey
04.12.2017
09:40:16


Google
Sasha
04.12.2017
09:40:34
значит все-таки допилили )

Michael
04.12.2017
09:42:19
приватные рецепты только на гитхабе могут жить?

Nikolay
04.12.2017
09:43:17
а можете пояснить, как с конфигами работать? Т.е. вот есть папка config в ней packages + routes.yaml и service.yaml. Как правильно теперь создавать свои конфиги и обращаться к ним из своих классов. Просто напрямую читать или есть какой-то единый провайдер конфигов?

Sasha
04.12.2017
09:43:27
приватные это все хорошо. но кроме Github существуют и другие репозитории

сложно как то все

нельзя ли просто в composer.json добавить свой репозиторий под flex

Sergey
04.12.2017
09:46:18
приватные это все хорошо. но кроме Github существуют и другие репозитории
пока запилили только гитхаб, это не значит что только гитхаб и останется

https://github.com/symfony/flex/issues/71

https://github.com/aurimasniekis/flex-server

ну короч там можно почитать

Sasha
04.12.2017
09:49:01
начали пилить свои велосипеды короче

Boris
04.12.2017
09:49:08
Autowiring services based on the types they implement is not supported anymore. Rename (or alias) your services to their FQCN id to make them autowirable. Правильно ли я понял суть что теперь вместо прокидывания интерфейса, необходимо прокидывать именно четко необходимый класс?

Sasha
04.12.2017
09:49:43
можно и интерфейс. только сделать его алиасом

Andrey
04.12.2017
09:49:50
вчера ковырял, сильно autowire и паблик не привычно. И не всегда понятно, почему падает ошибка на composer install/update (крч. composer run auto-scripts падают) для пакетов без рецептов

Sasha
04.12.2017
09:52:15
как по мне, так лучше прокидывать интерфейс.

Andrey
04.12.2017
09:52:24
меня сейчас закидают говн*, но как сделать паблик сервисами подключенные конкретными бандлами конфиги?

Sasha
04.12.2017
09:52:49
сделай алиас

или надо именно их?

Andrey
04.12.2017
09:54:38
ибо как я выставлял public: true для всего, то ругалось на fail автовайр для kernel (string аргументы не резолвятся. Может стоило самому задефайнить, но не пробовал)

да их

Google
Andrey
04.12.2017
09:55:08
в бандле юзали в контроллерах $this->get('service')

Sasha
04.12.2017
09:57:27
я бы перевел на алиасы и через аргументы прокинул

но есть хак https://symfony.com/blog/new-in-symfony-3-4-defining-compiler-passes-in-the-kernel

не уверен в правильности решения )

Andrey
04.12.2017
09:59:13
по хорошему это само собой, но вчера не взялся разбираться с автовайром. Диковинный зверь для меня пока

Sasha
04.12.2017
09:59:21
на knp видел хороший материал как плавно мигрировать на autowire

Andrey
04.12.2017
10:00:41
и как я буду ловить, какого ** там не тот сервис, что нужен

у нас уже было обсуждение, нужен вайр или нет

Andrey
04.12.2017
10:04:16
Пасиб, видел. Неудобно

Sergey
04.12.2017
10:08:22
и в целом - почему там должно быть что-то не то?

Sasha
04.12.2017
10:09:30
Андрей, дело в привычке скорее

Andrey
04.12.2017
10:09:57
и в целом - почему там должно быть что-то не то?
несколько реализаций интерфейса, к примеру. Но это пока теория. Я не успел разобраться

Andrey
04.12.2017
10:10:13
возможно я и "старовер", но хз

Sergey
04.12.2017
10:10:19
Interface: @Implementation

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

Google
Sasha
04.12.2017
10:11:35
не исключаю вариант что у него может быть в разных местах по одному и тому же интерфейсу нужны разные реализации

Sasha
04.12.2017
10:13:30
но там можно и вручную указать MyService: arguments: $myAttr: @MyCustomService

Sergey
04.12.2017
10:13:34
дальше все зависит от того насколько все плохо организовано в проекте

да, можно еще и так, по старинке

Sasha
04.12.2017
10:14:42
что мне нравится в новом подходе, так это то, что все надо делать правильно )

Sergey
04.12.2017
10:16:21
что мне нравится в новом подходе, так это то, что все надо делать правильно )
не, ты можешь делать как и было, скорее правильнее стало делать удобнее

Sasha
04.12.2017
10:16:42
true

Admin
ERROR: S client not available

Andrey
04.12.2017
10:17:02
дальше все зависит от того насколько все плохо организовано в проекте
ну я стартанул пустой проект. Свой не готов переводить

Alexander
04.12.2017
10:18:00
Как считаете. При разработке бандла надо делать основной сервис (к примеру knp_paginator) приватным? или все-таки публичным?

Sergey
04.12.2017
10:18:15
на крайняк - предоставлять локаторы

но опять же в случае того же knp paginator - в этом нет смысла особо

Alexander
04.12.2017
10:26:29
Andrew
04.12.2017
10:32:30
да, типа knp_paginator
тогда тут все зависит от религии мейнтейнера — хочет ли он поддерживать и старый и новый подход или хочет ли он учить людей юзать только приватные сервисы. ИМХО, сервис должен быть публичным. Если какой-нибудь условный арки будет юзать God Object с инжектом всего контейнера и захочет сделать $this->container->get или в контроллерах будет дергать сервис через контейнер — пусть делает.

Google
Константин
04.12.2017
12:51:18
Как лучше всего реализовать слой абстракции над поисковым движком?

Через спецификации не понятно как получать фасеты

Sergey
04.12.2017
12:52:23
может попробуй сделать без абстракции?)

а там как пойдет)

Andrey
04.12.2017
12:52:42
мы делали свой конвертер json -> ES query

Константин
04.12.2017
12:53:10
Без абстракций уже сделано)

Борис
04.12.2017
12:53:25
может попробуй сделать без абстракции?)
Да не... ну ты че... а разве так можно было? ?

Andrey
04.12.2017
12:53:39
уточню, фасеты не юзали. Пропустил этот момент

Константин
04.12.2017
12:58:04
В принципе у нас и абстракция тоже готова. Такая правда реализация получилась. В конструктор объекта запроса приходит массив, не понятно как этот массив лучше всего валидировать. Что делать если пришли не поддерживаемые данные, игнорить? ...

Чую что в целом подход неверный, но какой верный не чую)

Andrey
04.12.2017
12:59:46
мб хранить мета данные (маппинги) для индексов, и сравнивать с ними?

Константин
04.12.2017
13:13:23
Запрос в поиск абстрагировать от http реквеста в первую очередь

И абстрагироваться от типа поискового движка во вторую

Дабы не размазывать Solarium либу по всему проекту

Pavel
04.12.2017
13:34:00
Такой вопрос, в 4 версии, если я не ошибаюсь, нельзя будет делать $container->set(). Активно применяю данный метод для тестов(инжекчу моки/фейки). Как можно эту проблему решить в 4 версии?

Борис
04.12.2017
13:42:02
Запрос в поиск абстрагировать от http реквеста в первую очередь
Ну так не передавайте на вход поисковому сервису массив, а передавайте какой-то класс на вход, ждите какой-то класс на выходе. Интерфейс поискового движка "SearchEngineInterfcae" имеет один метод search(Input $input): Output; Только не пытайтесь его написать универсальным (как доктриновский QueryBuilder) а делайте его под свой бизнесс $qb->filterByMamuEbal($aParam)->filterByTvoiDomTrubaShatal($bParam); Все - любая ваша реализация поискового движка должна уметь обработать Input и вернуть Output Input собирайте со своего httprequst. Profit?

vlad
04.12.2017
13:42:33
ребят, а каким механизмом переопределяются в симфони разные классы? например я переопределил AuthenticationHandle забил его в сервисы получается, приоритет аналогичных классов, только переопределённых пользователем - выше, чем стандартных?

Константин
04.12.2017
13:42:34
Так и сделано

Страница 442 из 1418