Ответы пользователя по тегу Symfony
  • Symfony2. Как правильно использовать репозиторий в контроллере?

    @shoomyst
    dumb
    У вас контроллер как сервис, надо еще посмотреть роутинг.
    И неплохо было бы стек трейс глянуть
    Ответ написан
    Комментировать
  • Как сделать чтобы ссылки из word и excel не редиректили на страницу логина?

    @shoomyst
    dumb
    Что-то я не понял, на что вы жалуетесь.
    Не думаю, что Symfony каким-то особенным образом выделяет MS Office.
    Проблема с авторизацией, вы открываете страницу, к которой имеют доступ только аутентифицированные пользователи, а т.к. при переходе из ворда кука с сессией не передается, то соответственно и нет информации о вашем статусе аутентификации, и вас кидает на логин
    Ответ написан
    Комментировать
  • Bcrypt или sha512?

    @shoomyst
    dumb
    Сейчас скорее стоит вопрос: bcrypt или scrypt.
    Scrypt вроде как считается перспективнее, но Anthony Ferrara советует bcrypt:
    blog.ircmaxell.com/2014/03/why-i-dont-recommend-sc...
    Ответ написан
    Комментировать
  • Как в Symfony2 делать вложенные формы?

    @shoomyst
    dumb
    Вероятно, нужно какое-то hidden поле в InvoiceLineType, которое будет содержать id счета
    Ответ написан
  • Стоит ли в Symfony2 заменять Assetic на связку bower + grunt, или совместить их использование?

    @shoomyst
    dumb
    Разумеется стоит.
    Assetic это так, игрушка на первое время. Потом начинают бесить постоянные тормоза, начинает не хватать гибкости инструментов nodejs. Я сейчас уже не особо слежу за развитием ассетика, но насколько мне известно там в последнее время не самым активным образом это всё дело движется.
    У ассетика есть некоторые плюсы в плане интеграции в symfony/twig, но если проект претендует на какую-то серьезность, советую при старте проекта сразу закладывать nodejs + bower + grunt/gulp - в конечном счете эта связка перекроет все плюсы ассетика.
    Ответ написан
    1 комментарий
  • PersistentTokenBasedRememberMeServices не ставятся куки?

    @shoomyst
    dumb
    Че-то всё очень страшно. Параметры похоже многие перепутаны.
    Подключите xdebug и пройдитесь по коду
    Ответ написан
    Комментировать
  • Symfony2 программная авторизация и запомнить меня?

    @shoomyst
    dumb
    Вероятно это будет непросто. Я бы смотрел куда-то в сторону этого:
    \Symfony\Component\Security\Http\RememberMe\PersistentTokenBasedRememberMeServices
    Ответ написан
    Комментировать
  • Как убедить фронтент-девелопера использовать Twig?

    @shoomyst
    dumb
    Можно ствол приставить к голове. Такой аргумент сложно будет игнорировать.

    Твиг у вас будет отжирать 30-40% времени на запрос. Может фронтендщик просто в теме и для вашего json твиг никому кроме вас не нужен?)
    Ответ написан
    2 комментария
  • Symfony2 и мобильные устройства?

    @shoomyst
    dumb
    Можно посмотреть https://github.com/suncat2000/MobileDetectBundle
    Ответ написан
    Комментировать
  • Почему не передается Container в конструктор?

    @shoomyst
    dumb
    В arguments не нужны кавычки, как для сервисов, так и для параметров
    Ответ написан
  • Можно ли наследовать роутинги в Symfony?

    @shoomyst
    dumb
    В php-конфигах можно использовать общие переменные.
    Также можно попробовать в аннотациях выделить похожие роуты в отдельный класс и задать общие параметры в аннотациях класса, а специфические доопределять через аннотации методов.

    Edit: Для xml и yml можно попробовать подколлекции:

    main.yml
    _sub:
        resource: "@AcmeDemoBundle/Resources/config/sub.yml"
        prefix:   /
        defaults: { _controller: AcmeDemoBundle:Main:index, param1:1, param2:2, param3:3 }

    sub.yml
    route_one:
        pattern:  /r1
        defaults: { param4:4 }
    	
    route_two:
        pattern:  /r2
        defaults: { param4:5 }
    Ответ написан
  • Symfony2 ajax qjuery и юнит тест?

    @shoomyst
    dumb
    Symfony из коробки не умеет ajax. Тут надо смотреть куда-то в сторону других инструментов типа Mink или casperjs.
    Ответ написан
    Комментировать
  • Как правильно работать с коллекциями doctrine в symfony2?

    @shoomyst
    dumb
    Можно в контроллере (плохо), в сервисе (чуть лучше), в entity (как в yii), в твиге (хорошо)
    Ответ написан
  • Symfony 2 - Куда класть и как подключать css/js?

    @shoomyst
    dumb
    Можно поиграться с ассетиком, но лучше сразу смотреть в сторону bower/grunt/gulp
    Ответ написан
    Комментировать
  • Как разобраться в философии symfony2?

    @shoomyst
    dumb
    Symfony это конструктор, который поставляется в собранном виде. Но ничто не мешает вам его разобрать и собрать по-своему. Многие критикуют фреймворк за это качество: нет ощущения целостности как у Yii или Laravel. Похожее говорили в свое время про Zend1: монстр, куча несвязанных компонент, лучше я буду кодить в своем уютном CodeIgniter-e.

    Symfony Framework - это (грубо) HttpKernel + DependencyInjection Container (DIC) + EventDispatcher.

    Главное задачей HttpKernel является конвертирование Request в Response. Для этого он загружает и инициализируется бандлы, создает контейнер (DIC), пытается по Request определить контроллер, выполнить его и убедиться, что результат выполенения контроллера является объектом Response, если нет, то пытается преобразовать результат в Response.

    DIC занимается созданием и хранением сервисов, если совсем грубо, то это такой навороченный Registry.

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

    Бандлы лучше всего сравнить с плагинами. Есть ядро, которое было описано выше, а бандлы это плагины для него, добавляющие некий функционал (FrameworkBundle, TwigBundle, MonologBundle). FrameworkBundle это основной плагин, который добавляет основной функционал: формы, валидация, сессии, translations. При желании его тоже можно заменить как и любой другой. Другой задачей бандлов является интеграция различных библиотек в ваш проект: twig, monolog, swiftmailer (поставляются с симфони), sphinx, elastic и т.д. Ну и логика приложения так же может быть размещена в бандлах.

    Чтобы Symfony узнал про ваш бандл, его необходимо зарегистрировать в AppKernel.

    У каждого бандла есть своя конфигурация, с помощью которой он может интегрироваться в Symfony:
    1. Регистрация своих сервисов в DIC. Далее вы можете использовать их, например, в контроллере: $container->get('sphinx.search')->query(...)
    2. Бандл может повесить свои сервисы на какие-то события. Например, на событие KernelEvents::CONTROLLER, тогда ваш бандл получит управление при подборе контроллера и вы сможете обойти штатный механизм подбора и вернуть свой, который и будет выполнен.
    3. Использование тегов. Например, вы создали класс HelloWorldViewHelper и хотите его подключить в Templating. В конфигурации указываете для него тег "templating.helper" и он будет подхвачен Symfony и встроен в шаблонизатор.
    Ответ написан
    6 комментариев