2013-10-22 22 views
9

PDF faturaları oluşturmaya çalışırken (PHP istemcisi PHP 5.4.19 çalıştırıyor) Magento bir PHP hatası veriyor.Magento PHP 5.4 PDF faturası Zend hatası

Fatal error: Declaration of Zend_Pdf_FileParserDataSource_File::__construct() must be compatible with Zend_Pdf_FileParserDataSource::__construct() in /var/www/vhosts/website/httpdocs/includes/src/Zend_Pdf_FileParserDataSource_File.php on line 41

Normalde FileParserDataSource.php düzenleme ve bir iki satır bu sorunu gidermek için kolay, sorun, bu komut (http://pastebin.com/J64VNsRP) uzanan bir Zend_Pdf_FileParserDataSource_File.php çalıştırmak olmasıdır.

PHP 5.4 çalıştıran bir sunucuda Magento ile PDF faturaları oluşturmak mümkün olan herhangi bir çözüm var mı?

cevap

6

Bu, zune core issue http://framework.zend.com/issues/browse/ZF-12093 dır. lib/Zend/Pdf/FileParserDataSource.php

// abstract public function __construct(); 

    /** 
    * Object destructor. Closes the data source. 
    * 
    * May also perform cleanup tasks such as deleting temporary files. 
    */ 
// abstract public function __destruct();` 
+0

Bu, ikinci dosya nedeniyle mümkün değildir. – Hidde

+0

@Hidde, ikinci dosya ne anlama geliyor? –

+0

Eğer __construct() işlevini açıklarsam; ve işlev __destruct(); FileParseDataSource.php Zend_Pdf_FileParserDataSource_File.php tarafından genişletilmiş çünkü lib/Zend/Pdf/FileParseDataSource.php içinde herhangi bir değişiklik yoktur. Aynı zamanda bu dosyadaki kodu da açıklarsam, "2 soyut yöntem içerir ve bu nedenle soyut olarak bildirilmeli veya kalan yöntemleri uygulamalıyım" hatası alıyorum. – Hidde

37

Bu PHP Version 5.4.4 ve zend framwork arasında bir uyumsuzluk sorunu içinde __construct ve __destruct yöntemleri yorum oluşturma düzeltmek.

Bu işlevde değişiklik yaparak düzeltildi lib/Zend/Pdf/FileParserDataSource.php.

değişiklik

abstract public function __construct(); 

abstract public function __construct($filePath); 
+0

Bir çekicilik gibi çalışır! Teşekkürler. –

+0

bu kabul edilen cevap btw olmalıdır. – fbtb

+0

Evet, bu işe yarıyor! – Guus

2

için Bazen recompile derleyici veya devre dışı bırakmak derleyici tarafından çözmek olabilir.
Sistem> Araçlar> Derleme sayfasına gidin ve Run Compilation Process düğmesini veya Disable düğmesini tıklayın.
Şimdi baskı faturasını kontrol edin.
http://kb.magenting.com/content/24/81/en/disable-magento-compiler.html

+0

'Çalışmaları Derleme Süreci 'php 5.4 yamasını çalıştırdıktan sonra işi yaptım. – Timo002

1

Sen lib değiştirmek zorunda kalacak/Zend/Pdf/FileParserDataSource.php ve lib/Zend/Pdf/FileParserDataSource/file.php

FileParserDataSource içinde

   abstract public function __construct(); 

bulun. php ve

   abstract public function __construct($filePath); 

olarak değiştirin ve ayrıca file.php içinde

012 için aynı şeyi
   public function __construct() 

dönüştürme

   public function __construct($filePath) 

Bu benim için çalıştı. Umut ediyorum bu yardım eder.