Замените шаблоны веток лезвием

Есть ли способ заменить стандартные шаблоны на лезвийные? Я использую payum с пакетом payum-laravel и шлюзом klarna-checkout.

Я дошел до того, что мне нужно заменить шаблон для AuthorizeAction. Я заметил, что могу создать параметр конфигурации payum.action.authorize, но у меня нет понимания того, как работает twig, и абсолютно не в сочетании с laravel.

Есть ли способ получить немного больше контроля над представлением? Или само действие AuthorizeAction?

Я обнаружил, что все действия в KlarnaCheckoutGatewayFactory настраиваются, поэтому я попытался создать свой собственный AuthorizeAction, который отличается от значения по умолчанию, а затем включить его в конфигурацию при добавлении нового шлюза в payumBuilder. Но я думаю, что это не должно работать, потому что я получил следующую ошибку:

LogicException в строке 21 ArrayObject.php: интерфейс Traversable должен быть реализован в случае, если задан пользовательский экземпляр ArrayAccess. Это связано с некоторыми ограничениями php.


person Henriksjodahl    schedule 07.03.2016    source источник
comment
Если у вас нет понимания механизма шаблонов Twig, вы можете просто прочитать документацию и ознакомиться с ней. Если вы можете понять Blade, вы поймете и Twig.   -  person Bogdan    schedule 07.03.2016


Ответы (1)


Вы должны заменить payum.action.render_template на тот, который поддерживает блейд. Также вам нужно перезаписать путь для авторизации шаблона, что-то, что понимает блейд.

<?php
/** @var Payum $payum */
$payum = (new PayumBuilder())
    ->addDefaultStorages()
    ->addGateway('aGateway', [
        'factory' => 'klarna_checkout'
        'payum.action.render_template' => new BladeRenderTemplateAction(/* args*/),
        'payum.template.authorize' => 'path/to/blade/template',
    ])

    ->getPayum()
;

P.S. Мы можем добавить это действие шаблона рендеринга в пакет laravel и сделать его действием по умолчанию.

person Maksim Kotlyar    schedule 07.03.2016
comment
Спасибо! Я сделал pr на LaravelPackage, добавив RenderTemplateAction - person Henriksjodahl; 08.03.2016