di.xml 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?xml version="1.0"?>
  2. <!--
  3. /**
  4. * This file is part of the Klarna Core module
  5. *
  6. * (c) Klarna Bank AB (publ)
  7. *
  8. * For the full copyright and license information, please view the NOTICE
  9. * and LICENSE files that were distributed with this source code.
  10. */
  11. -->
  12. <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  13. xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  14. <!-- Custom config reader -->
  15. <virtualType name="Klarna\Core\Config\Virtual"
  16. type="Magento\Framework\Config\Data">
  17. <arguments>
  18. <argument name="reader" xsi:type="object">Klarna\Core\Config\Reader\Virtual</argument>
  19. <argument name="cacheId" xsi:type="string">klarna_config</argument>
  20. </arguments>
  21. </virtualType>
  22. <virtualType name="Klarna\Core\Config\Reader\Virtual"
  23. type="Magento\Framework\Config\Reader\Filesystem">
  24. <arguments>
  25. <argument name="converter" xsi:type="object">Klarna\Core\Config\Converter\Dom</argument>
  26. <argument name="schemaLocator" xsi:type="object">Klarna\Core\Config\SchemaLocator\Virtual</argument>
  27. <argument name="fileName" xsi:type="string">klarna.xml</argument>
  28. <argument name="idAttributes" xsi:type="array">
  29. <item name="/klarna/external_payment_method" xsi:type="string">id</item>
  30. <item name="/klarna/api_type" xsi:type="string">id</item>
  31. <item name="/klarna/api_type/options/option" xsi:type="string">id</item>
  32. <item name="/klarna/api_version" xsi:type="string">id</item>
  33. <item name="/klarna/api_version/options/option" xsi:type="string">id</item>
  34. <item name="/klarna/merchant_checkbox" xsi:type="string">id</item>
  35. <item name="/klarna/order_lines" xsi:type="string">id</item>
  36. <item name="/klarna/order_lines/line" xsi:type="string">id</item>
  37. </argument>
  38. </arguments>
  39. </virtualType>
  40. <virtualType name="Klarna\Core\Config\SchemaLocator\Virtual"
  41. type="Magento\Framework\Config\GenericSchemaLocator">
  42. <arguments>
  43. <argument name="moduleName" xsi:type="string">Klarna_Core</argument>
  44. <argument name="schema" xsi:type="string">klarna.xsd</argument>
  45. </arguments>
  46. </virtualType>
  47. <!-- Custom Logger -->
  48. <type name="Klarna\Core\Logger\Handlers\File">
  49. <arguments>
  50. <argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument>
  51. </arguments>
  52. </type>
  53. <type name="Klarna\Core\Logger\Logger">
  54. <arguments>
  55. <argument name="name" xsi:type="string">klarnaDebugLogger</argument>
  56. <argument name="handlers" xsi:type="array">
  57. <item name="system" xsi:type="object">Klarna\Core\Logger\Handlers\File</item>
  58. </argument>
  59. </arguments>
  60. </type>
  61. <!-- Constructor injection -->
  62. <type name="Klarna\Core\Model\System\Config\Source\Base">
  63. <arguments>
  64. <argument name="config" xsi:type="object">Klarna\Core\Config\Virtual</argument>
  65. </arguments>
  66. </type>
  67. <type name="Klarna\Core\Model\Api\Rest\Service">
  68. <arguments>
  69. <argument name="log" xsi:type="object">Klarna\Core\Logger\Logger</argument>
  70. </arguments>
  71. </type>
  72. <type name="Klarna\Core\Helper\KlarnaConfig">
  73. <arguments>
  74. <argument name="config" xsi:type="object">Klarna\Core\Config\Virtual</argument>
  75. </arguments>
  76. </type>
  77. <type name="Klarna\Core\Model\Checkout\Orderline\Collector">
  78. <arguments>
  79. <argument name="logger" xsi:type="object">Klarna\Core\Logger\Logger</argument>
  80. </arguments>
  81. </type>
  82. <preference for="Klarna\Core\Api\VersionInterface" type="Klarna\Core\Config\ApiVersion" />
  83. <preference for="Klarna\Core\Api\ServiceInterface" type="Klarna\Core\Model\Api\Rest\Service" />
  84. <preference for="Klarna\Core\Api\OrderInterface" type="Klarna\Core\Model\Order" />
  85. <preference for="Klarna\Core\Api\OrderRepositoryInterface" type="Klarna\Core\Model\OrderRepository" />
  86. </config>