Skip to content

Commit ae444fc

Browse files
author
Raymond J. Kolbe
committed
Refactored tests, updated bootstrap for current version of ZF2, and refactored where rendering options are.
1 parent 51c7202 commit ae444fc

File tree

6 files changed

+34
-58
lines changed

6 files changed

+34
-58
lines changed

src/DOMPDFModule/View/Model/PdfModel.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,17 @@
2323

2424
class PdfModel extends ViewModel
2525
{
26+
/**
27+
* Renderer options
28+
* @var array
29+
*/
30+
protected $options = array(
31+
'paperSize' => '8x11',
32+
'paperOrientation' => 'portrait',
33+
'basePath' => '/',
34+
'fileName' => null
35+
);
36+
2637
/**
2738
* PDF probably won't need to be captured into a
2839
* a parent container by default.

src/DOMPDFModule/View/Renderer/PdfRenderer.php

Lines changed: 7 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525

2626
class PdfRenderer implements Renderer
2727
{
28-
private $paperSize = '8x11';
29-
private $paperOrientation = 'portrait';
30-
private $basePath = '/';
31-
private $fileName = null;
3228
private $resolver = null;
3329
private $htmlRenderer = null;
3430

@@ -43,39 +39,6 @@ public function getHtmlRenderer()
4339
return $this->htmlRenderer;
4440
}
4541

46-
public function setPaperSize($size)
47-
{
48-
$this->paperSize = $size;
49-
50-
return $this;
51-
}
52-
53-
public function setPaperOrientation($orientation)
54-
{
55-
$this->paperOrientation = $orientation;
56-
57-
return $this;
58-
}
59-
60-
public function setBasePath($path)
61-
{
62-
$this->path = $path;
63-
64-
return $this;
65-
}
66-
67-
public function setFileName($name)
68-
{
69-
$this->fileName = $name;
70-
71-
return $this;
72-
}
73-
74-
public function getFileName()
75-
{
76-
return $this->fileName;
77-
}
78-
7942
/**
8043
* Renders values as a PDF
8144
*
@@ -87,13 +50,17 @@ public function render($nameOrModel, $values = null)
8750
{
8851
$html = $this->getHtmlRenderer()->render($nameOrModel, $values);
8952

53+
$paperSize = $nameOrModel->getOption('paperSize');
54+
$paperOrientation = $nameOrModel->getOption('paperOrientation');
55+
$basePath = $nameOrModel->getOption('basePath');
56+
9057
$pdf = new DOMPDF();
91-
$pdf->set_paper($this->paperSize, $this->paperOrientation);
92-
$pdf->set_base_path($this->basePath);
58+
$pdf->set_paper($paperSize, $paperOrientation);
59+
$pdf->set_base_path($basePath);
9360

9461
$pdf->load_html($html);
9562
$pdf->render();
96-
63+
9764
return $pdf->output();
9865
}
9966

src/DOMPDFModule/View/Strategy/PdfStrategy.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,6 @@ public function selectRenderer(ViewEvent $e)
8787
$model = $e->getModel();
8888

8989
if ($model instanceof Model\PdfModel) {
90-
$this->renderer->setPaperSize($model->getOption('paperSize'));
91-
$this->renderer->setPaperOrientation($model->getOption('paperOrientation'));
92-
$this->renderer->setBasePath($model->getOption('basePath'));
93-
9490
return $this->renderer;
9591
}
9692

@@ -122,10 +118,11 @@ public function injectResponse(ViewEvent $e)
122118
$response->setContent($result);
123119
$response->getHeaders()->addHeaderLine('content-type', 'application/pdf');
124120

125-
if ($renderer->getFileName()) {
121+
$fileName = $e->getModel()->getOption('filename');
122+
if (isset($fileName)) {
126123
$response->getHeaders()->addHeaderLine(
127124
'Content-Disposition',
128-
'attachment; filename=' . $renderer->getFileName());
125+
'attachment; filename=' . $e->getModel()->getOption('filename'));
129126
}
130127
}
131128
}

tests/Bootstrap.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
use Zend\ServiceManager\ServiceManager;
4-
use Zend\Mvc\Service\ServiceManagerConfiguration;
4+
use Zend\Mvc\Service\ServiceManagerConfig;
55

66
error_reporting( E_ALL | E_STRICT );
77

@@ -29,8 +29,8 @@
2929
// Assumes PHP Composer autoloader w/compiled classmaps, etc.
3030
require_once('vendor/autoload.php');
3131

32-
$serviceManager = new ServiceManager(new ServiceManagerConfiguration($configuration['service_manager']));
33-
$serviceManager->setService('ApplicationConfiguration', $configuration);
32+
$serviceManager = new ServiceManager(new ServiceManagerConfig($configuration['service_manager']));
33+
$serviceManager->setService('ApplicationConfig', $configuration);
3434
$serviceManager->setAllowOverride(true);
3535

3636
$moduleManager = $serviceManager->get('ModuleManager');

tests/DOMPDFModuleTest/View/Strategy/PdfStrategyTest.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,21 @@
22

33
namespace DOMPDFModuleTest\View\Strategy;
44

5-
use Zend\Filter\RealPath;
6-
75
use Zend\View\Resolver\TemplatePathStack;
8-
9-
use PHPUnit_Framework_TestCase as TestCase;
10-
use Zend\EventManager\EventManager;
11-
use Zend\Http\Request as HttpRequest;
6+
use Zend\View\Renderer\PhpRenderer;
7+
use Zend\View\ViewEvent;
128
use Zend\Http\Response as HttpResponse;
9+
use PHPUnit_Framework_TestCase as TestCase;
1310
use DOMPDFModule\View\Model\PdfModel;
14-
use Zend\View\Model\ViewModel;
1511
use DOMPDFModule\View\Renderer\PdfRenderer;
1612
use DOMPDFModule\View\Strategy\PdfStrategy;
17-
use Zend\View\ViewEvent;
13+
1814

1915
class PdfStrategyTest extends TestCase
2016
{
2117
public function setUp()
2218
{
23-
$this->renderer = new PdfRenderer;
19+
$this->renderer = new PdfRenderer();
2420
$this->strategy = new PdfStrategy($this->renderer);
2521
$this->event = new ViewEvent();
2622
$this->response = new HttpResponse();
@@ -29,6 +25,10 @@ public function setUp()
2925
$this->resolver->addPath(dirname(__DIR__) . '/_templates');
3026

3127
$this->renderer->setResolver($this->resolver);
28+
29+
$htmlRenderer = new PhpRenderer();
30+
$htmlRenderer->setResolver($this->resolver);
31+
$this->renderer->setHtmlRenderer($htmlRenderer);
3232
}
3333

3434
public function testPdfModelSelectsPdfStrategy()

tests/TestConfiguration.php.dist

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ return array(
88
'cache_dir' => 'data/cache',
99
'module_paths' => array(
1010
'./vendor',
11+
'./module'
1112
),
1213
),
1314
'service_manager' => array(

0 commit comments

Comments
 (0)