
Dinar
07.09.2017
11:46:33
В общем мне просто не встретился такой юзкейс.
Я поэтому до сих пор так и не понимаю, нахрен он был нужен :)

Jan
07.09.2017
11:47:00
Для трансформации из одного вида в другой разве что
Как-то в далеком 2013 писал парсер турнирных таблиц)

Google

Антон
07.09.2017
12:09:45
Что то подобное было в cms какой то российской.

Artemiy
07.09.2017
12:18:09
Umi )

Антон
07.09.2017
12:30:55
Точно

Bohdan
07.09.2017
12:33:55
кто как инжектит сервисы в standalone бандлы?
нужно загнать сервис таким образом, чтобы его можно было протестировать отдельно от приложения (заопенсорсить плаинрую)

Sergey
07.09.2017
12:34:27
какие сервисы?

Bohdan
07.09.2017
12:35:00
дефолтный event_dispatcher
пока что пришел к тому, что делаю регистрацию сервиса (по сути, мок) во время теста
корректно ли такое?

Sergey
07.09.2017
12:35:30
в fos user bundle глянь
там есть такое

Bohdan
07.09.2017
12:37:38
как и догадывался - компайлер пассы
возможно, кто-то будет искать
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/DependencyInjection/Compiler/InjectUserCheckerPass.php
спасибо

Sergey
07.09.2017
16:35:19
Ребята, как в симфонии запретить залогиненным юзерам ходить на логин, регистер и прочее. Юзаю фос

Google

Ruslan
07.09.2017
16:40:11

Sergey
07.09.2017
16:40:37
Получается надо переопределять фософские экшны

Ruslan
07.09.2017
16:41:00
угу. Хз или можно както опционально;

Sergey
07.09.2017
16:41:17
Хотелось бы, спасибо, покопаю

Ruslan
07.09.2017
16:41:37
Если найдешь - поделись )

Sergey
07.09.2017
16:46:53
Конечно
Если)


Mikhail
07.09.2017
17:04:00
Ну так чуваки его для шаблонизации какой-то юзали вообще или яхз
Конфиги хранить и писать в xml достаточно удобно. Инструменты есть.
Oxygen имеет мощный дебаггер.
Семантика соблюдается, есть схемы, валидация на лету, жёсткая структура.
Про xslt - очень удобно выполнять преобразования из xml во что угодно.
Я генерю .less, handlebars и json.
А в этом чате, потому что иного не нашёл в ТГ. Выше писал. В симфони вот конфиги в xml или его расширении.
Сначала сам скептически относился к xml, т.к. много лишнего, разбирать проблематично казалось. Теперь не так. Да, писать трансформаторы☺ муторно, зато надёжно.
Вон например под андроид разметка и ресы всё в xml. Данные апи - json/xml. Яндекс запустил генератор какой то, результат в xml.
Перл тоже топят, ещё жив.
Вот например ещё: есть uml диаграмка, данные узлов и связей в xml. Генерить код при помощи xslt довольно просто.
Есть ещё диаграммы логики, классов, состояний. И преобразовывать в другую структуру куда удобнее через xslt, чем писать кучу рекурсивных функций для разбора дерева.


Sergey
07.09.2017
17:18:47
@snickersssss
- { path: ^/login$, allow_if: "not has_role('ROLE_USER')" }
Будет светиться access denied, можно прописать в найстройках файервола еще и access_denied_url чтобы редиректнуть в случае denied на нужный урл

Oleg
08.09.2017
02:30:45

Sergey
08.09.2017
06:08:19
@okwinza А почему решил сообщить нам об этом?)

Kirill
08.09.2017
07:22:00
ребят, поясните за вебпак энкор
через yarn добавил зависимости в package.json
как мне теперь получить привычные css\js файлы для импорта в твиге через assetic ?

Dinar
08.09.2017
07:23:35
Использовать их в коде :)
Щас попробую найти пример
В webpack.config.js

Kirill
08.09.2017
07:24:48
у меня в node_modules они, нужно как-то ведь в build папку их отправить

Dinar
08.09.2017
07:24:50
прописываешь
var Encore = require('@symfony/webpack-encore');

Kirill
08.09.2017
07:25:08
есть такое
http://symfony.com/doc/current/frontend/encore/simple-example.html
отсюда взял

Google

Dinar
08.09.2017
07:25:29
Ну вот
Там же написано, что в консоли набрать

Kirill
08.09.2017
07:26:49
.addEntry тут добавляь пути на тот же jquery в node_modules?

Dinar
08.09.2017
07:26:53
Там же вообще все прокомментировано :)
jquery лучше через .autoProvidejQuery()

Антон
08.09.2017
07:27:13
var Encore = require('@symfony/webpack-encore');
Encore
.setOutputPath('web/build/')
.setPublicPath('/build')
.enableReactPreset()
.addEntry('app', './assets/js/app.js')
.addStyleEntry('global', './assets/css/global.scss')
.enableSassLoader()
.autoProvidejQuery()
.enableReactPreset()
.enableSourceMaps(!Encore.isProduction());
module.exports = Encore.getWebpackConfig();
вот складывает в папку web/build
внутри app.js
import React from 'react';
и он берет из папки node_modules

Kirill
08.09.2017
07:28:58
ок спасибо

Dinar
08.09.2017
07:29:19
Если не укзываешь это как путь, то есть просто название пакета, то берет из node_modules. если указываешь как путь, то есть со слешами и точками, то будет искать соответственно

Kirill
08.09.2017
07:32:01
не знал, что можно туда название пакета добавлять, добавил, запустил сборку и всё стало понятно )

nemesis
08.09.2017
07:35:50
Всем привет
https://github.com/Happyr/Doctrine-Specification подскажите, плз, кто юзает этот пакет, как боретесь с ситуациями, когда надо какую то агрегацию сделать?
Например, если надо применить спецификацию, но выбирать не Entity а какую то агрегацию (например сумму или DTO объект). Метод match сразу возвращает Entity в результатах.

Dmitriy
08.09.2017
07:49:32
я сделал свой спек
class Select implements QueryModifier
public function modify(QueryBuilder $qb, $dqlAlias)
{
$qb->addSelect($this->alias);
}
потом просто его юзаю
new Select('MIN(price) AS price'),

nemesis
08.09.2017
07:52:22
спс, сча попробую

Dmitriy
08.09.2017
07:53:00
https://github.com/Happyr/Doctrine-Specification/blob/master/docs/1-creatingSpecs.md
вот дока

Kirill
08.09.2017
08:00:26
@Gaaarfild с js пакетами по имени всё хорошо, а вот css из этих же пакетов не билдится почему-то)

Dinar
08.09.2017
08:36:43
Можно подключать в своем CSS через @import

Google

nemesis
08.09.2017
08:48:36
@kion78 спасибо, получилось, только не понял как его универсальным сделать.
Так работает:
class SelectTotalPrice extends BaseSpecification
public function modify(QueryBuilder $qb, $dqlAlias)
$qb->addSelect(sprintf('SUM(%s.price) as totalPrice', $dqlAlias));
$repository->match(new SelectSum())
Если передавать в конструктор select и потом подставлять в modify - алиас теряется
'SELECT e, SUM(price) as totalPrice FROM ...
Error: 'price' is not defined.

Sergey
08.09.2017
09:05:05
наконец заюзал новые контроллеры 3.3 симфони, годненько так

Artemiy
08.09.2017
09:05:34

Sergey
08.09.2017
09:07:00
все зависимости ты указываешь как и в сервисах через конструктор
автовайринг работает, контроллеры регистрируются как сервисы
и что самое главное фишки типа $this->render() которые требуют контейнера работают, потому что симфони пихает их через ServiceSubscriberInterface

Pavel
08.09.2017
09:13:14
А еще симфони плагин для шторма уже поддерживает __invoke, вообще лепота.

Dmitriy
08.09.2017
09:43:15

nemesis
08.09.2017
09:43:44
там в базовом оба есть
interface Specification extends Filter, QueryModifier
abstract class BaseSpecification implements Specification

Dmitriy
08.09.2017
09:45:34
вот https://gist.github.com/pchelk1n/27973dd2aa78dd27eb9ebb503c32e76f
ниже в коменте как использовать

Alan
08.09.2017
09:55:57

Dmitriy
08.09.2017
09:56:38
твиг экстеншен тоже

nemesis
08.09.2017
10:02:53
а как и где алиас задается?

Sergey
08.09.2017
10:03:24

Alan
08.09.2017
10:03:37
в 3.4 да

Sergey
08.09.2017
10:04:04
https://symfony.com/blog/new-in-symfony-3-4-lazy-commands а вот, сделали ж

Alan
08.09.2017
10:06:54
lock component только забыли вернуть)

nemesis
08.09.2017
10:18:02
@kion78 если в репозитории прописать так:
public function __construct($em, $class)
parent::__construct($em, $class);
$this->setAlias('asd');
и потом создавать спецификацию new Select('SUM(asd.price) as totalPrice') - будет работать. Но смущает что надо с конструктором такое делать, и что в коде надо знать об алиасе

Dmitriy
08.09.2017
10:18:39
у тебя же не абстрактный прайс, а конкретного объекта

Google

nemesis
08.09.2017
10:19:24
вот хочу уйти от 'e')
@kion78 в общем, решили 'e' использовать в для таких выборок. Спасибо)

Dmitriy
08.09.2017
10:33:52
нзч )

Виктор
08.09.2017
12:11:31
ПОдскажите плз, возможно ли создать у Entity поле, которое не будет лежать в БД, а у него просто будет getter где описано как это поле заполнить? Делаю так:

Dmitry
08.09.2017
12:13:06
какой сериалайзер?

Виктор
08.09.2017
12:13:14

Dinar
08.09.2017
12:13:56
А что должно быть на выходе?

Виктор
08.09.2017
12:14:01
какой сериалайзер?
jms_serializer походу обрабатывает... Еще не разобрался как родной юзать...

Dinar
08.09.2017
12:14:02
Ты же в поле ничего не кладешь
Он берет не из геттера а прямо из поля
Это же рефлексия

Виктор
08.09.2017
12:14:36
как ничего - на примере в геттере пишу - test, а поля вообще в БД нет и не должно быть

Dmitry
08.09.2017
12:14:43
Если jms, то смотри это https://jmsyst.com/libs/serializer/master/reference/annotations#accessor или вообще без свойства это https://jmsyst.com/libs/serializer/master/reference/annotations#virtualproperty

Dinar
08.09.2017
12:15:35
Тебе надо либо VirtualProperty делать,либо в поле что-то класть.
Сериалайзер не юзает геттеры