I've installed and deployed magento-hackathon/magento-composer-installer
in my Magento 1.9 and I am trying to add and use mpdf/mpdf (composer packagist) in a controller.
This package contains a classmapped file
"autoload": {
"classmap": [
"filters/",
"fpdi.php",
"fpdf_tpl.php",
"fpdi_pdf_parser.php",
"pdf_context.php"
]
},
Which is called in another component.
$this->parsers[$fn] = new fpdi_pdf_parser($fn);
And then Magento gives me the error
Warning: include(Fpdi/Pdf/Parser.php): failed to open stream: No such file or directory in /../mymagento/lib/Varien/Autoload.php on line 94
The Mage.php seems to be patched properly, and I also tried to do composer dumpautoload
.
Some facts and findings:
- If I create a
/newfile.php
(on the root folder, with not triggering Magento), includeautoload.php
, and call the method, it works. - If I disable developer mode it works (and the warning is logged).
- If I change the Varien/Autoload.php and add an
if(stream_resolve_include_path($classFile))
(as suggested here) before returning the include, it works (but I would override a core file). - It seems that when composer autoload resolves
fpdi_pdf_parser
it makes arequire_once
to 'pdf_parser.php
' and at this stage Mage autoload is triggered instead of Composer's autoload.
Am I missing something? Any help is appreciated.