ну, у меня простая проблема, я пытаюсь загрузить этот класс в свой собственный класс: https://github.com/picqer/moneybird-php-client/blob/master/src/Picqer/Financials/Moneybird/Moneybird.php
логично назвать его в __construct: \ Picqer \ Financials \ Moneybird \ Moneybird $ moneybird
, но проблема в том, что для этого требуется заранее установить \ Picqer \ Financials \ Moneybird \ Connection
, так как я могу использовать его в своем коде:
class OnepageControllerSuccessAction implements \Magento\Framework\Event\ObserverInterface
{
protected $_order;
protected $_connection;
protected $_invoiceFactory;
protected $_moneybird;
public function __construct(
\Magento\Sales\Api\Data\OrderInterface $order,
\Picqer\Financials\Moneybird\Connection $connection,
\Picqer\Financials\Moneybird\Moneybird $moneybird,
\Wemessage\Moneybird\Model\InvoiceFactory $invoiceFactory
){
$this->_order = $order;
$this->_connection = $connection;
$this->_invoiceFactory = $invoiceFactory;
$this->_moneybird = $moneybird;
}
...
public function execute(
\Magento\Framework\Event\Observer $observer
) {
$orderids = $observer->getEvent()->getOrderIds();
foreach($orderids as $orderid){
$order = $this->_order->load($orderid);
$this->_connection->setRedirectUrl('');
...
// connection has been established and now we need to pass it to the moneybird
$moneybird = $this->_moneybird($this->_connection);
, которыйприводит к ошибке: PHP Фатальная ошибка: Uncaught Ошибка: имя функции должно быть строкой ...
ну, один из способов исправить это, это добавить метод setConnection в этот класс и вызвать его, но проблема в том, что этозагружается из репозитория композитором, поэтому, если я хочу использовать свой модуль в другой установке, мне придется сделать те же шаги.
любой другой обходной путь?
добавлена конструкция файла moneybird:
/**
* Moneybird constructor.
* @param \Picqer\Financials\Moneybird\Connection $connection
*/
public function __construct(Connection $connection)
{
$this->connection = $connection;
}
так что это не приведет к путанице и ненужным вопросам.