CakePdf\Pdf\CakePdf::output PHP Метод

output() публичный Метод

Create pdf content from html. Can be used to write to file or with PdfView to display
public output ( null | string $html = null ) : string
$html null | string Html content to render. If omitted, the template will be rendered with viewVars and layout that have been set.
Результат string
    public function output($html = null)
    {
        $Engine = $this->engine();
        if (!$Engine) {
            throw new Exception(__d('cake_pdf', 'Engine is not loaded'));
        }
        if ($html === null) {
            $html = $this->_render();
        }
        $this->html($html);
        $cache = $this->cache();
        if ($cache) {
            $cacheKey = md5(serialize($this));
            $cached = Cache::read($cacheKey, $cache);
            if ($cached) {
                return $cached;
            }
        }
        $output = $Engine->output();
        if ($this->protect()) {
            $output = $this->crypto()->encrypt($output);
        }
        if ($cache) {
            Cache::write($cacheKey, $output, $cache);
        }
        return $output;
    }

Usage Example

Пример #1
0
 /**
  * testPluginOutput
  *
  * @dataProvider provider
  */
 public function testPluginOutput($config)
 {
     $pdf = new CakePdf($config);
     Plugin::load('MyPlugin', ['autoload' => true]);
     $pdf->viewVars(['data' => 'testing']);
     $pdf->template('MyPlugin.testing', 'MyPlugin.pdf');
     $pdf->helpers('MyPlugin.MyTest');
     $result = $pdf->output();
     $expected = 'MyPlugin Layout Data: testing';
     $this->assertEquals($expected, $result);
     $pdf->template('MyPlugin.testing', 'MyPlugin.default');
     $result = $pdf->output();
     $lines = ['<h2>Rendered with default layout from MyPlugin</h2>', 'MyPlugin view Data: testing', 'MyPlugin Helper Test: successful'];
     foreach ($lines as $line) {
         $this->assertTrue(strpos($result, $line) !== false);
     }
 }