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

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

Load PdfEngine
public engine ( string $name = null ) : CakePdf\Pdf\Engine\AbstractPdfEngine
$name string Classname of pdf engine without `Engine` suffix. For example `CakePdf.DomPdf`
Результат CakePdf\Pdf\Engine\AbstractPdfEngine
    public function engine($name = null)
    {
        if (!$name) {
            return $this->_engineClass;
        }
        $config = [];
        if (is_array($name)) {
            $config = $name;
            $name = $name['className'];
        }
        $engineClassName = App::className($name, 'Pdf/Engine', 'Engine');
        if (!class_exists($engineClassName)) {
            throw new Exception(__d('cake_pdf', sprintf('Pdf engine "%s" not found', $name)));
        }
        if (!is_subclass_of($engineClassName, 'CakePdf\\Pdf\\Engine\\AbstractPdfEngine')) {
            debug(get_parent_class($engineClassName));
            throw new Exception(__d('cake_pdf', 'Pdf engines must extend "AbstractPdfEngine"'));
        }
        $this->_engineClass = new $engineClassName($this);
        $this->_engineClass->config($config);
        return $this->_engineClass;
    }

Usage Example

Пример #1
0
 /**
  * Tests that the Dompdf instance is being processed as expected.
  */
 public function testDompdfControlFlow()
 {
     $engineClass = $this->getMockClass('\\CakePdf\\Pdf\\Engine\\DomPdfEngine', ['_createInstance']);
     $Pdf = new CakePdf(['engine' => '\\' . $engineClass]);
     $Pdf->engine()->expects($this->once())->method('_createInstance')->will($this->returnCallback(function ($options) {
         $Dompdf = $this->getMock('\\Dompdf\\Dompdf', ['setPaper', 'loadHtml', 'render', 'output'], [$options]);
         $Dompdf->expects($this->at(0))->method('setPaper')->with('A4', 'portrait');
         $Dompdf->expects($this->at(1))->method('loadHtml')->with(null);
         $Dompdf->expects($this->at(2))->method('render');
         $Dompdf->expects($this->at(3))->method('output');
         return $Dompdf;
     }));
     $Pdf->engine()->output();
 }
All Usage Examples Of CakePdf\Pdf\CakePdf::engine