O que este arquivo di.xml tem de incorreto?
Pergunta
Estou implementando um gateway de pagamento personalizado.
Para poder configurá-lo, criei um ConfigProvider desta forma:
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Desytec\Transbank\Model;
use Magento\Checkout\Model\ConfigProviderInterface;
use Magento\Framework\Escaper;
use Magento\Payment\Helper\Data as PaymentHelper;
class WebpayConfigProvider implements ConfigProviderInterface
{
/**
* @var string[]
*/
protected $methodCode = Webpay::CODE;
/**
* @var Webpay
*/
protected $method;
/**
* @var Escaper
*/
protected $escaper;
/**
* @param PaymentHelper $paymentHelper
* @param Escaper $escaper
*/
public function __construct(
PaymentHelper $paymentHelper,
Escaper $escaper
) {
$this->escaper = $escaper;
$this->method = $paymentHelper->getMethodInstance($this->methodCode);
}
/**
* {@inheritdoc}
*/
public function getConfig()
{
return $this->method->isAvailable() ? [
'payment' => [
'webpay' => [
'image' => $this->getImage(),
'instructions' => $this->getInstructions(),
],
],
] : [];
}
/**
* Get mailing address from config
*
* @return string
*/
protected function getImage()
{
return nl2br($this->escaper->escapeHtml($this->method->getImage()));
}
/**
* Get mailing address from config
*
* @return string
*/
protected function getInstructions()
{
return nl2br($this->escaper->escapeHtml($this->method->getInstructions()));
}
}
E este arquivo di.xml em etc/frontend:
<?xml version="1.0"?>
<!--
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\Model\CompositeConfigProvider">
<arguments>
<argument name="configProviders" xsi:type="array">
<item name="transbank_webpay_config_provider" xsi:type="object">Desytec\Transbank\Model\WebpayConfigProvider</item>
</argument>
</arguments>
</type>
</config>
Quando carrego o arquivo di.xml no servidor e tento carregar o checkout, ocorre um erro 500.Se eu excluí-lo, a página será mostrada corretamente.
O que você vê de ruim nesse arquivo?
Obrigado Jaime
Solução
não precisa ser o próprio di.xml que contém o erro.
uma resposta 500 significa principalmente que você deve examinar o error.log do seu servidor da web.Deve haver uma exceção ou erro contendo uma mensagem de erro adequada
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange