-
Notifications
You must be signed in to change notification settings - Fork 63
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
getAutoloaderConfig
function
frommodules/DOMPDFModule/src/Module.php
-
Change from
use Zend\ServiceManager\FactoryInterface;
touse Zend\ServiceManager\Factory\FactoryInterface;
in:
modules/DOMPDFModule/src/MVC/Service/ViewPdfRendererFactory.php
modules/DOMPDFModule/src/MVC/Service/ViewPdfStrategyFactory.php
modules/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.php
modules/DOMPDFModule/src/MVC/Service/ViewPdfStrategyFactory.php
modules/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.php
modules/DOMPDFModule/src/MVC/Service/ViewPdfStrategyFactory.php
modules/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
composer
commanddump-autoload
to rebuild autoloading:
$ composer dump-autoload
This tutorial assumes that dompdf
is installed in version 0.6.2
by composer
in vendor
directory.