-
Notifications
You must be signed in to change notification settings - Fork 62
Description
I've made the module working on ZF3. But actually only with dompdf version 0.6.2. You should totally upgrade to newer version of it!
But so far, just to give you an hint what to do to make this module working on ZF3, I made an change list while updateing it. It works pretty well then. Maybe helpful for others too, so I will let this here.
It really easy to do, just follow this easy steps ...
-
Delete
modules/DOMPDFModule/Module.php -
Move files from
modules/DOMPDFModule/src/DOMPDFModule/
tomodules/DOMPDFModule/src/(one directory up) -
Change the path in
getConfig()function
inmodules/DOMPDFModule/src/Module.php
to__DIR__ . '/../config/module.config.php -
Remove
getAutoloaderConfigfunction
frommodules/DOMPDFModule/src/Module.php -
Change from
use Zend\ServiceManager\FactoryInterface;
touse Zend\ServiceManager\Factory\FactoryInterface;in:
modules/DOMPDFModule/src/MVC/Service/ViewPdfRendererFactory.phpmodules/DOMPDFModule/src/MVC/Service/ViewPdfStrategyFactory.phpmodules/DOMPDFModule/src/Service/DOMPDFFactory.php
- Change function
public function createService(ServiceLocatorInterface $serviceLocator)
topublic function __invoke(ContainerInterface $container, $requestedName, array $options = null)in:
modules/DOMPDFModule/src/MVC/Service/ViewPdfRendererFactory.phpmodules/DOMPDFModule/src/MVC/Service/ViewPdfStrategyFactory.phpmodules/DOMPDFModule/src/Service/DOMPDFFactory.php
- Add new imports:
use Interop\Container\ContainerInterface;use Interop\Container\Exception\ContainerException;use Zend\ServiceManager\Exception\ServiceNotCreatedException;use Zend\ServiceManager\Exception\ServiceNotFoundException;use Zend\ServiceManager\ServiceManager;
to the following file headers:
modules/DOMPDFModule/src/MVC/Service/ViewPdfRendererFactory.phpmodules/DOMPDFModule/src/MVC/Service/ViewPdfStrategyFactory.phpmodules/DOMPDFModule/src/Service/DOMPDFFactory.php
-
Instead of
$serviceLocator->get
use$container->get(ServiceManager::class)->get
in factories -
Change
defined('DOMPDF_DIR') || define("DOMPDF_DIR", __DIR__ . '/../../../../../dompdf/dompdf');
todefined('DOMPDF_DIR') || define("DOMPDF_DIR", __DIR__ . '/../../../../vendor/dompdf/dompdf');
inmodules/DOMPDFModule/src/Service/DOMPDFFactory.php -
Change
require_once __DIR__ . '/../../../config/module.compat.php';
torequire_once __DIR__ . '/../../config/module.compat.php';
inmodules/DOMPDFModule/src/Service/DOMPDFFactory.php -
Change
$viewManager->getResolver()
to$serviceLocator->get("ViewResolver")
inmodules/DOMPDFModule/src/Mvc/Service/ViewPdfRendererFactory.php -
Change
$viewManager->getRenderer()
to$serviceLocator->get("ViewRenderer")
inmodules/DOMPDFModule/src/Mvc/Service/ViewPdfRendererFactory.php -
Add autoloader configuration to
composer.json:
"autoload": {
"psr-4": {
"DOMPDFModule\\": "module/DOMPDFModule/src/"
}
}- Run
composercommanddump-autoloadto rebuild autoloading:
$ composer dump-autoloadThis tutorial assumes that dompdf is installed in version 0.6.2 by composer in vendor directory.