Symfony ExpressionLanguage

hell0w0rd

Продвинутый новичок
Почти релизнулся компонент, статья фабьена, перевод
Тут немного затрагивалось обсуждение этого компонента, теперь есть небольшая дока с юзкейсами, кто что думает?)
Особенно на счет последнего абзаца - создания конфигов под "вебмастеров", чтобы в коде не насрали, когда нужно что-то сложное(хотя я что-то не представляю таких конфигов)
 

Вурдалак

Продвинутый новичок
Мне не нравится. Fabien просто новую игрушку нашел.

Во-первых, понятное дело, программирование на конфигах. А это тебе никакого автокомплита и прочего.

Во-вторых, inconsistent interface типа
Код:
hello:
    path: /hello/{name}
    method: [POST]
    condition: "context.getMethod() in ['GET','HEAD']"
— это говорит о проблемах кода.

В-третьих, опять-таки, эти аннотации. Я их всегда стараюсь не использовать по возможности. Это хрень.
 

AmdY

Пью пиво
Команда форума
Да расскажите кто-нибудь Фабьену о анонимных функциях.
PHP:
//access_control:
//    - { path: ^/_internal/secure, allow_if: "'127.0.0.1' == request.getClientIp() or //has_role('ROLE_ADMIN')" }
['access_control' => [
    ['path': '^/_internal/secure':, 'rule' => function($request, $user) { return '127.0.0.1' == $request->getClientIp() ||  $user->hasRole(ROLE_ADMIN);}],
]]
 

AmdY

Пью пиво
Команда форума
А если серьёзно, я считаю что за DSL будущее, только оно будет идти от создателей IDE (JetBrains, Delphi), а не фреймворков.
 

hell0w0rd

Продвинутый новичок
только оно будет идти от создателей IDE (JetBrains, Delphi), а не фреймворков.
Вот с этим полностью согласен - очень странно что для подобных фишек из js поддержка есть (например если функция принимает массив - показываются возможные значения), или require нормально обрабатывается, а когда пишешь $a['request'] = $request; $b = ['request'], IDE уже не знает о b ровным счетом ничего.
Да расскажите кто-нибудь Фабьену о анонимных функциях.
PHP:
//access_control:
//    - { path: ^/_internal/secure, allow_if: "'127.0.0.1' == request.getClientIp() or //has_role('ROLE_ADMIN')" }
['access_control' => [
    ['path': '^/_internal/secure':, 'rule' => function($request, $user) { return '127.0.0.1' == $request->getClientIp() ||  $user->hasRole(ROLE_ADMIN);}],
]]
Какие анонимые функции в конфигах? Только если на php писать конфиги
 

AmdY

Пью пиво
Команда форума
Ну а зачем их писать на псевдоязыке, если разницы почти никакой.
 

AmdY

Пью пиво
Команда форума
В руби с dsl всё хорошо, потом всякие даже php-шники юзают capistrano, puppets, vargrant.....
 
Сверху