php-reports icon indicating copy to clipboard operation
php-reports copied to clipboard

Problems with PHP7.2

Open kevin201 opened this issue 5 years ago • 17 comments

It's such a shame that this project seems to have been abandoned. It's such a great package!

I've just been through an exercise to update an old instance (2014) to work with PHP7.2, which, I think, would only require some tweaks in the composer.lock file to work again straight out of the box. (before I was getting white screens or "Warning: count(): Parameter must be an array or an object that implements Countable" errors)

I've even managed to cobble together a function in the PhpReportType.php file to enable dynamic dropdown headers from my SQL data.

I haven't found anywhere other than here where the author might be watching, (the old support forum seems to be defunct) so I thought I'd post this here in case.

kevin201 avatar May 13 '19 08:05 kevin201

I have been able to update it to work with PHP 7.2, so I may be able to help. What version of Twig and Flight are you using?

hellifiknow avatar Jun 03 '19 21:06 hellifiknow

I'm not at work at the moment, but if I recall correctly the main problem was solved by relaxing the requirements in the lock file. I couldn't get Twig 2 to play, but a later version of 1.x worked ok. Any more info on what tweaks you made would be interesting.

kevin201 avatar Jun 03 '19 23:06 kevin201

Twig: const VERSION = '1.24.1-DEV'; Flight: 1.2.20

kevin201 avatar Jun 08 '19 23:06 kevin201

@kevin201 can you please post composer files that work with php 7.2?

apropos avatar Jun 11 '19 19:06 apropos

@kevin201 Try upgrading the version of Flight you are using to 1.3.7 and upgrade the version of Twig you are using to 1.37.1.

hellifiknow avatar Jun 11 '19 19:06 hellifiknow

I keep getting the following error. PHP Fatal error: Cannot declare class Flight, because the name is already in use in /var/www/xxxx/vendor/mikecao/flight/flight/Flight.php on line 53

apropos avatar Jun 11 '19 19:06 apropos

@apropos What version of Flight are you using?

hellifiknow avatar Jun 11 '19 19:06 hellifiknow

I figured out the problem with class declaration. Removing Flight from autoload solved it.

@hellifiknow the one you suggested, 1.3.7 and Twig 1.37.1 "require": { "twig/twig": "1.37.1", "swiftmailer/swiftmailer": "5.", "mikecao/flight": "1.3.7", "jdorn/sql-formatter": "dev-master", "jdorn/file-system-cache": "dev-master", "phpoffice/phpexcel": "dev-develop", "adodb/adodb-php": "dev-master", "lespoilus/spyc": "dev-master", "google/apiclient": "1.0.@beta" },

apropos avatar Jun 11 '19 19:06 apropos

@hellifiknow thanks for the help. Now the problem I'm having is following.

500 Internal Server Error Trying to get property 'report' of non-object (8)

#0 /var/www/html/xxx/data_reports/lib/PhpReports/PhpReports.php(189): flight\Engine->handleError(8, 'Trying to get p...', '/var/www/html/w...', 189, Array) #1 /var/www/html/xxx/data_reports/index.php(82): PhpReports::displayReport('daily_gross_rep...', 'html') #2 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(169): {closure}('html') #3 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(145): flight\core\Dispatcher::callFunction(Object(Closure), Array) #4 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/Engine.php(340): flight\core\Dispatcher::execute(Object(Closure), Array) #5 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(198): flight\Engine->_start() #6 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(144): flight\core\Dispatcher::invokeMethod(Array, Array) #7 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(49): flight\core\Dispatcher::execute(Array, Array) #8 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/Engine.php(92): flight\core\Dispatcher->run('start', Array) #9 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(198): flight\Engine->__call('start', Array) #10 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/Flight.php(77): flight\core\Dispatcher::invokeMethod(Array, Array) #11 /var/www/html/xxx/data_reports/index.php(102): Flight::__callStatic('start', Array) #12 {main}

apropos avatar Jun 11 '19 20:06 apropos

Try clearing out the cache directory. Possibly it was cached before you updated and the cache has an old version.

hellifiknow avatar Jun 11 '19 20:06 hellifiknow

i remove the whole vendor directory and do composer update --no-dev each time.

apropos avatar Jun 11 '19 20:06 apropos

There is a directory that gets created named 'cache' at the same level as the vendor directory. Just run sudo rm -r cache to clear it out.

hellifiknow avatar Jun 11 '19 20:06 hellifiknow

@hellifiknow I've reinstalled php-reports and that seems to have fixed the issues. Thanks so much for the help!

apropos avatar Jun 11 '19 20:06 apropos

@apropos Cool! Glad I could help.

hellifiknow avatar Jun 11 '19 20:06 hellifiknow

@hellifiknow thanks for the help. Now the problem I'm having is following.

500 Internal Server Error Trying to get property 'report' of non-object (8)

#0 /var/www/html/xxx/data_reports/lib/PhpReports/PhpReports.php(189): flight\Engine->handleError(8, 'Trying to get p...', '/var/www/html/w...', 189, Array) #1 /var/www/html/xxx/data_reports/index.php(82): PhpReports::displayReport('daily_gross_rep...', 'html') #2 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(169): {closure}('html') #3 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(145): flight\core\Dispatcher::callFunction(Object(Closure), Array) #4 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/Engine.php(340): flight\core\Dispatcher::execute(Object(Closure), Array) #5 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(198): flight\Engine->_start() #6 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(144): flight\core\Dispatcher::invokeMethod(Array, Array) #7 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(49): flight\core\Dispatcher::execute(Array, Array) #8 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/Engine.php(92): flight\core\Dispatcher->run('start', Array) #9 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/core/Dispatcher.php(198): flight\Engine->__call('start', Array) #10 /var/www/html/xxx/data_reports/vendor/mikecao/flight/flight/Flight.php(77): flight\core\Dispatcher::invokeMethod(Array, Array) #11 /var/www/html/xxx/data_reports/index.php(102): Flight::__callStatic('start', Array) #12 {main}

Hi, I'm having the same issue but can't fix it. Could you please provide me some help, maybe by providing you composer file ? Thanks a lot

eotin avatar Feb 19 '20 14:02 eotin

Hi, I'm having the same issue but can't fix it. Could you please provide me some help, maybe by providing you composer file ? Thanks a lot

I resolved the issue by reinstalling php-reports and here's the current composer.json { "name": "jdorn/php-reports", "description": "A PHP framework for displaying reports from any data source, including SQL and MongoDB", "homepage": "http://jdorn.github.com/php-reports/", "keywords": ["reports", "mongodb", "sql", "reporting", "csv", "database"], "license": "LGPL-3.0+", "authors": [ { "name": "Jeremy Dorn", "email": "[email protected]" } ], "require": { "php": ">=5.3", "ext-pdo": "", "twig/twig": "1.37.1", "swiftmailer/swiftmailer": "5.", "mikecao/flight": "1.3.7", "jdorn/sql-formatter": "dev-master", "jdorn/file-system-cache": "dev-master", "phpoffice/phpexcel": "dev-develop", "adodb/adodb-php": "dev-master", "lespoilus/spyc": "dev-master", "google/apiclient": "1.0.*@beta" }, "autoload": { "files": [ "lib/adodb/pivottable.inc.php" ], "classmap": [ "vendor/jdorn/file-system-cache/" ] }, "minimum-stability": "dev" }

apropos avatar Feb 25 '20 06:02 apropos

twig 1.44.7 works for me on PHP 7.4.3

russell-hutson-jp avatar Dec 15 '22 22:12 russell-hutson-jp