Как добавить escpos-php в magento?

Я работаю с magento 1.9. Я хочу использовать драйвер escpos-php для печати наших счетов на термопринтер usb. Я сохранил библиотеки escpos-php в корневом каталоге моей установки magento. В пользовательском модуле magento я переписал накладные по умолчанию, которые были отображены в формате pdf формата А4, и я попытался сделать тепловой счет-фактуру в формате pdf (размер бумаги C7). Этот файл существует в /local/Receipt/Pos/Model/Invoice.php

<?php
  class Receipt_Pos_Model_Invoice extends Mage_Sales_Model_Order_Pdf_Invoice
  {
        public function getPdf($invoices = array())
        {
            // I want to access the libraries from here in this 
            // function like shown  below. where 'vendor' is a directory
            // created by myself.
            require(Mage::getBaseDir('lib') .'/vendor/mike42/escpos-php/autoload.php'); // this is the autoloader that comes with escpos-php driver.
            use Mike42\Escpos\PrintConnectors\FilePrintConnector; // Warning is raised at this line.
            use Mike42\Escpos\Printer;
            $connector = new FilePrintConnector("/dev/usb/lp0");
            $printer = new Printer($connector);

         }
    }
   ?>

Что я пытаюсь сейчас, я хочу получить доступ к файлам класса драйвера escpos-php из этого /local/Receipt/Pos/Model/Invoice.php файл. Поэтому я добавил абсолютный путь к автозагрузчику драйвера escpos-php к коду в Invoice.php, но он выдает предупреждение, подобное приведенному ниже.

Warning: include(Mike42\Escpos\PrintConnectors\PrintConnector.php): failed to open stream: No such file or directory  in /var/www/html/checkout/Gama_V2/shop/lib/Varien/Autoload.php on line 94

I think the autoloader of Magento is also trying to find the class files of the escpos-php driver and fails to load it. But I don't want the magento autoloader work here because, I have already included the autoloader of escpos-php driver which takes care of loading its files. How can I avoid this warning and proceed to print receipts? Please help me!

1 ответ

Чтобы автозагрузка распознала вашу внешнюю библиотеку, вам нужно следовать структуре файла magento.

Внешние библиотеки должны быть расположены в /lib/

в вашем модуле вы можете использовать их как

require_once Mage::getBaseDir('lib') . '/Mike42/Escpos/Whatever.php';
Другие вопросы по тегам