2012-03-19 4 views
-2

可能性の重複:
Declaration of Methods should be Compatible with Parent Methods in PHP厳格な基準:My_Pdf_Documentの宣言::セーブ():: Zend_Pdfはのものと互換性が保存する必要があります()

私はPDFを実装しています(Zend_Pdf_Table )、今の問題は、そのは私に次のエラーを与えるということであるSourceForge

からダウンロード。

Error 1=Strict Standards: Declaration of My_Pdf_Document::save() should be compatible 
with that of Zend_Pdf::save() in D:\SVN data\WebClient_PHP\trunk\library 
\My\Pdf\Document.php on line 2 

ライン#2は、第2の誤差は、自分の行動

$instance = new abc(); 
$select  = $instance->Get_xyz($p); 

    try { 

    // create PDF 
     $pdf = new My_Pdf_Document('Call Logs Details.pdf', '.'); 

        // create page 
        $page = $pdf->createPage(); 

        // define font resource 
        $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA); 

        // set font 
        $page->setFont($font, 24); 

        // create table 
        $table = new My_Pdf_Table(3); 

        // iterate over record set 
        // set up table content 
        while ($record = $select->fetch()) { 
        $row = new My_Pdf_Table_Row(); 
        $cols = array(); 
        foreach ($record as $k => $v) { 
         $col = new My_Pdf_Table_Column(); 
         $col->setText($v); 
         $cols[] = $col; 
        } 
        $row->setColumns($cols); 
        $row->setFont($font, 14); 
        $row->setBorder(My_Pdf::TOP, new Zend_Pdf_Style()); 
        $row->setBorder(My_Pdf::BOTTOM, new Zend_Pdf_Style()); 
        $row->setBorder(My_Pdf::LEFT, new Zend_Pdf_Style()); 
        $row->setCellPaddings(array(10,10,10,10)); 
        $table->addRow($row); 
        } 

        // add table to page 
        $page->addTable($table, 0, 0); 

        // add page to document 
        $pdf->addPage($page); 

        // save as file 
        $pdf->save(); 
        echo 'SUCCESS: Document saved!'; 
       } catch (Zend_Pdf_Exception $e) { 
        die ('PDF error: ' . $e->getMessage()); 
       } catch (Exception $e) { 
        die ('Application error: ' . $e->getMessage()); 
       } 

私は次のエラーを取得していますなぜすべてのアイデアから

Error 2=Fatal error: Declaration of My_Pdf_Page::drawImage() must be compatible with 
that of Zend_Pdf_Canvas_Interface::drawImage() in D:\SVN data\WebClient_PHP\trunk 
\library\My\Pdf\Page.php on line 369 

いくつかのコードをある

class My_Pdf_Document extends My_Pdf{ 

です。私は何が欠けているのですか?私は最新のZendフレームワークを使用しています。

答えて

3

さまざま署名(メソッド定義のパラメータ)を用いてこれらのメソッドをオーバーライドしています。 PHPのメソッドをオーバーライドすることはできません。

これはMy_Pdf_Documentのあることに署名することによって引き起こされる:Zend_Pdfはのあることに署名VS

public function save(){ 

public function save($filename, $updateOnly = false) 

理想的My_Pdf_Document署名はZend_Pdfは署名と一致するように更新されるべきです。注:これは厳密なエラーです。厳密なエラーをオフにして無視して、すべてがうまくいくことを期待してください(ただし、そうしないことを強く推奨します)。

+0

ので、どのように私は私が何をしたい達成するために行くことができますか? –

+2

問題の詳細を編集しました。他の誰かがより具体的なヘルプを持っていない限り、ソリューションの残りの部分はあなた次第です。 – Paul

+0

私は署名を変更する必要がありますか? –

1

あなたが使用しようとしているライブラリは、そのコンポーネントの作者がerror_reporting(E_STRICT | E_ALL)を使用していたが表示されない、ZF 1.11と完全に互換性がありません。コードベースをダウンロードし、適切な場合はerror_reporting(E_STRICT | E_ALL)に修正することをお勧めします(他の人がここに記載したように、すべての子メソッドのシグネチャが親メソッドのシグネチャに一致するようにしてください)。

原作者がまだ残っていると、それが更新さを維持するために気にした場合、それらに戻ってそれをコミットします。

関連する問題