Closed antonioscarpino closed 6 years ago
@antonioscarpino Non riesco a riprodurre il problema con la versione master dalla repository, quindi potrebbe essere già stato risolto... Stai utilizzando la release 2.3 beta 2?
Nella 2.3 beta 2 l'errore non c'èra. Aggiornando al repository master è comparso l'errore.
Attivando la modalità di debug e andando a stampare un preventivo esce fuori questo
Whoops\Exception\ErrorException thrown with message "The each() function is deprecated. This message will be suppressed on further calls"
Stacktrace:
6 Whoops\Exception\ErrorException in /home/saelettral/openstamanager/vendor/mpdf/mpdf/mpdf.php:10894
5 each in /home/saelettral/openstamanager/vendor/mpdf/mpdf/mpdf.php:10894
4 mPDF:_putimages in /home/saelettral/openstamanager/vendor/mpdf/mpdf/mpdf.php:26283
3 mPDF:_putresources in /home/saelettral/openstamanager/vendor/mpdf/mpdf/mpdf.php:11325
2 mPDF:_enddoc in /home/saelettral/openstamanager/vendor/mpdf/mpdf/mpdf.php:2142
1 mPDF:Close in /home/saelettral/openstamanager/vendor/mpdf/mpdf/mpdf.php:9275
0 mPDF:Output in /home/saelettral/openstamanager/pdfgen.php:194
@antonioscarpino Che versione PHP sta utilizzando? Perché apparentemente la funzione each è stata deprecata a partire dalla versione 7.2 di PHP.
La libreria MPDF, introdotta recentemente per gestire le stampe in modo più semplice, è attualmente utilizzata alla versione 6.* per garantire la compatibilità con PHP >= 5.4, ma il suo funzionamento viene garantito ufficialmente fino alla versione 7.0 di PHP... Recentemente è stata rilasciata la nuova versione 7 di MPDF, che però è compatibile a partire da PHP >= 5.6, e il relativo aggiornamento potrebbe provocare dei problemi per chi utilizza versione precedenti di PHP...
Però è anche vero che ormai le versione PHP precedenti alla 5.6 non sono neanche più mantenute a livello di sicurezza, e non credo che ci siano molti provider che ancora le forniscono di default... Ecco la documentazione ufficiale di supporto: http://php.net/supported-versions.php
@loviuz @fpsoftware @lucasalva87 Cosa ne pensate? L'aggiornamento del requisito minimo a PHP 5.6 permetterebbe di aggiornare molte librerie da noi utilizzate, come PHPMailer, MPDF e i componenti Symfony, evitando problemi con le versione più recenti di PHP.
Attualmente su gran parte degli host sono supportate le versioni PHP dalla 5.6 alla 7.2 io personalmente su questo hosting ho la 7.2. Personalmente credo sia meglio sviluppare un prodotto che possa avere una compatibilità e un supporto futuro (in special modo per una nuova relese che deve ancora uscire e che si presuppone debba essere la base per altre future) che cercare di mantenere la compatibilità a vecchie versioni di PHP deprecate. E' anche vero che molte aziende che usano questo tipo di prodotti non provvedono al mantenimento dei propri server.
@Dasc3er, nell'ottica di poter usare librerie più aggiornate e pensare al futuro, secondo me si può portare la compatibilità minima da PHP 5.4 a 5.6. Ho visto anche differenze di performance non da poco da PHP 5.4 a 5.6, per cui conviene sia a livello di sicurezza che di performance!
@loviuz E in quanto a compatibilità con le versioni precedenti?
In passato @fpsoftware aveva sottolineato l'importanza di mantenere la compatibilità a partire da PHP 5.4... Con il commit 593464603da5da740304fe623fb33adff0cfb04a ho effettuato alcuni miglioramenti proprio in questo senso.
Si potrebbe anche pensare di completare la release 2.3 come ultima compatibile a partire da PHP 5.4 (e di passaggio verso PHP 7), e dalle successive alzare il requisito a PHP 5.6 (oppure, a scelta, direttamente al 7) in base al feedback degli utenti. Oppure si potrebbero effettuare due zip: uno compatibile con PHP >= 5.4 e l'altro no...
La soluzione con due zip non è il massimo da gestire, sia per gli utenti sia per noi, la eviterei. Visti i problemi a questo punto é meglio partire anche per me da PHP 5.6 il problema sarà sopratutto per gli utenti che aggiornano un'installazione esistente, che sicuramente non ha PHP 7
Con il commit 3c2f6012e4c76775c1d0f2e2c22a5a4717aa88d4 ho impostato il requisito minimo a PHP 5.6...
Eventualmente, per risolvere il problema di compatibilità, si può risalire al commit 593464603da5da740304fe623fb33adff0cfb04a per ottenere una versione funzionante con PHP >= 5.4, sulla cui base ho creato il branch php5.4.
Riporto qui un piccolo problema che è presente quando si va a creare la stampa di un preventivo. Infatti alla fine della pagina non viene inserito il piè pagina.
vedi immagine