@Findus23 opened this Issue on June 17th 2021 Member

The first alpha of php8.1 was just released:
https://www.php.net/archive/2021.php#2021-06-10-1

There are a few breaking changes, so it might be useful to already start fixing things to get them released in time.

Changes: https://github.com/php/php-src/blob/php-8.1.0alpha1/UPGRADING

The major breaking change is that built-in functions now (just like user-defined functions) no longer accept null in non-nullable arguments:
https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg


Click to show fixed issues - [x] monolog datetime > Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /home/lukas/public_html/matomophp8/vendor/monolog/monolog/src/Monolog/Logger.php on line 324 - fixed in `https://github.com/Seldaek/monolog/pull/1554` - fix released in monolog/monolog `1.26.1` - fixed by #17828 ----------------- - [x] glob in upgradephp > WARNING [2021-06-17 21:51:48] 298624 /home/lukas/public_html/matomophp8/libs/upgradephp/upgrade.php(260): Deprecated - glob(): Passing null to parameter #2 ($flags) of type int is deprecated - Matomo 4.0.0-b3 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) - fixed by https://github.com/matomo-org/matomo/pull/17687 ------------------ - [x] db logging string instead of array > WARNING [2021-06-17 22:11:46] 311625 /home/lukas/public_html/matomophp8/core/Db.php(829): Warning - foreach() argument must be of type array|object, string given - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) - when running `./console core:update` - fixed by #17688 ------------- - [x] PDO fetch default > WARNING [2021-06-17 22:27:06] 321855 /home/lukas/public_html/matomophp8/libs/Zend/Db/Statement/Pdo.php(257): Deprecated - PDOStatement::fetch(): Passing null to parameter #2 ($cursorOrientation) of type int is deprecated - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) > WARNING [2021-06-17 22:28:30] 322336 /home/lukas/public_html/matomophp8/libs/Zend/Db/Statement/Pdo.php(257): Deprecated - PDOStatement::fetch(): Passing null to parameter #3 ($cursorOffset) of type int is deprecated - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) - fixed in https://github.com/matomo-org/matomo/pull/17689 ---------------- - [x] null site id > WARNING [2021-06-18 08:20:57] 24637 /home/lukas/public_html/matomophp8/core/Site.php(433): Deprecated - explode(): Passing null to parameter #2 ($string) of type string is deprecated - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) > WARNING [2021-06-18 08:24:50] 25583 /home/lukas/public_html/matomophp8/plugins/CoreConsole/Commands/CoreArchiver.php(59): Deprecated - explode(): Passing null to parameter #2 ($string) of type string is deprecated - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) - fixed in https://github.com/matomo-org/matomo/pull/17693 -------------- - [x] strtoupper null > WARNING [2021-06-18 11:15:28] 107661 /home/lukas/public_html/matomophp8/plugins/GeoIp2/LocationProvider/GeoIp2/Php.php(256): Deprecated - strtoupper(): Passing null to parameter #1 ($string) of type string is deprecated - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) - not sure how to elegantly solve this https://github.com/matomo-org/matomo/blob/c973567705a0065fdd7d7c7b11b80f1f0f1be350/plugins/GeoIp2/LocationProvider/GeoIp2/Php.php#L256 - fixed in https://github.com/matomo-org/matomo/pull/17869 --------------------- - [x] substr_count null > WARNING [2021-06-18 11:15:28] 107661 /home/lukas/public_html/matomophp8/core/Access.php(164): Deprecated - substr_count(): Passing null to parameter #1 ($haystack) of type string is deprecated - Matomo 4.4.0-b1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already) - https://github.com/matomo-org/matomo/blob/ea561b54613897b26d04cd25aafda92b66843b4b/core/Access.php#L164 - fixed in https://github.com/matomo-org/matomo/pull/17869 -------------------------- - [x] more null during tracking > PHP Deprecated: mb_strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/lukas/public_html/matomophp8/plugins/Referrers/Columns/Base.php on line 499 > PHP Deprecated: mb_strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/lukas/public_html/matomophp8/plugins/Referrers/Columns/Base.php on line 635 > PHP Deprecated: urldecode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/lukas/public_html/matomophp8/plugins/Referrers/Columns/Base.php on line 313 > PHP Deprecated: urldecode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/lukas/public_html/matomophp8/plugins/Referrers/SearchEngine.php on line 269 - fixed in https://github.com/matomo-org/matomo/pull/17869 ---------------- - [x] core/ArchiveProcessor.php(320) > **Deprecated - round(): Passing null to parameter #1 ($num) of type int|float is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/core/ArchiveProcessor.php(320) > $2/core/ArchiveProcessor.php(304) > $3/core/ArchiveProcessor/PluginsArchiver.php(289) > $4/core/ArchiveProcessor/PluginsArchiver.php(102) > $5/core/ArchiveProcessor/Loader.php(212) > $6/core/ArchiveProcessor/Loader.php(158) > $7/core/ArchiveProcessor/Loader.php(101) > $8/core/Context.php(75) > $9/core/ArchiveProcessor/Loader.php(105) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/ArchiveProcessor.php#L320 -------------- - [x] core/Common.php(423) > **Deprecated - htmlspecialchars_decode(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/core/Common.php(423) > $2/plugins/Referrers/VisitorDetails.php(58) > $3/plugins/Referrers/VisitorDetails.php(23) > $4/plugins/Live/Visitor.php(39) > $5/plugins/Live/API.php(343) > [internal function]: Piwik\Plugins\Live\API->Piwik\Plugins\Live\{closure}() > $7/core/DataTable.php(512) > $8/core/DataTable.php(618) > $9/core/API/DataTablePostProcessor.php(303) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/Common.php#L423 ----------------- - [x] core/Common.php(459) > **Deprecated - str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/core/Common.php(459) > $2/core/Common.php(381) > $3/plugins/Diagnostics/Diagnostic/DiagnosticResult.php(73) > $4/plugins/Diagnostics/Diagnostic/ArchiveInvalidationsInformational.php(45) > $5/plugins/Diagnostics/DiagnosticService.php(68) > $6/plugins/Diagnostics/DiagnosticService.php(55) > $7/plugins/Installation/Controller.php(494) > [internal function]: Piwik\Plugins\Installation\Controller->systemCheckPage() > $9/core/FrontController.php(619) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/Common.php#L459 --------------- - [x] core/Translation/Translator.php(89)+(97) > **Deprecated - strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/core/Translation/Translator.php(89) > $2/core/Piwik.php(854) > $3/plugins/API/ProcessedReport.php(232) > $4/plugins/API/ProcessedReport.php(51) > $5/plugins/API/ProcessedReport.php(342) > $6/plugins/API/API.php(287) > [internal function]: Piwik\Plugins\API\API->getProcessedReport() > $8/core/API/Proxy.php(244) > $9/core/Context.php(28) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/Translation/Translator.php#L89 ------------ - [x] core/Twig.php(57) > **Deprecated - str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/core/Twig.php(57) > $2/core/Twig.php(74) > $3/tmp/templates_c/7d/7db4ec1e91f63df5116d7b66dd6777405f533f5a60a0b2517aaedccadb6d2b4a.php(144) > $4/vendor/twig/twig/src/Template.php(171) > $5/tmp/templates_c/ff/ff096956e9aa11f9753b91bdaba6866a4c4a38661c94d433eef362e1f21a3c64.php(157) > $6/vendor/twig/twig/src/Template.php(171) > $7/tmp/templates_c/9d/9d0a4a6b0b07f521040aefe6c6155bdda67bc8d9638dac5549c0e0ec63edef20.php(195) > $8/vendor/twig/twig/src/Template.php(171) > $9/vendor/twig/twig/src/Template.php(134) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/Twig.php#L57 - [x] Update PHPMailer to at least 6.5.1 (first version with provisional support for PHP 8.1) - [x] Iterators > /home/lukas/public_html/matomophp8/libs/Zend/Db/Statement/Pdo.php(267): Deprecated - Return type of Zend_Db_Statement_Pdo::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[ReturnTypeWillChange] attribute should be used to temporarily suppress the notice - I think this one wasn't there before in the last alpha - https://github.com/matomo-org/matomo/blob/f21acfe280b284b09c96e8b77794ac9cf74dc332/libs/Zend/Db/Statement/Pdo.php#L262-L270 - I think PhpStorm complains that `$this->_stmt` which can be null is not `Traversable`. ----------------- - [x] core/DataTable.php(1979) + same in (1984),(1991),(1996),(2001) > **Deprecated - Return type of Piwik\DataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[ReturnTypeWillChange] attribute should be used to temporarily suppress the notice** > $0/core/DataTable.php(168) > $1/vendor/composer/ClassLoader.php(476) > $2/vendor/composer/ClassLoader.php(344) > $3/core/DataTable/Simple.php(21) > $4/vendor/composer/ClassLoader.php(476) > $5/vendor/composer/ClassLoader.php(344) > $6/core/API/ApiRenderer.php(63) > $7/core/API/ResponseBuilder.php(124) > $8/core/API/Request.php(272) > $9/core/Context.php(28) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/DataTable.php#L1979 ---------------------- - [x] core/DataTable/Filter/AddColumnsProcessedMetrics.php(73) > **Deprecated - Automatic conversion of false to array is deprecated** > $0/core/DataTable/Filter/AddColumnsProcessedMetrics.php(73) > $1/core/DataTable.php(533) > $2/core/API/DataTablePostProcessor.php(257) > $3/core/API/DataTablePostProcessor.php(218) > $4/core/API/DataTablePostProcessor.php(121) > $5/core/API/ResponseBuilder.php(190) > $6/core/API/ResponseBuilder.php(104) > $7/core/API/Request.php(272) > $8/core/Context.php(28) > $9/core/API/Request.php(273) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/core/DataTable/Filter/AddColumnsProcessedMetrics.php#L73 ------------------ - [x] libs/Zend/Session/Namespace.php(210) > **Deprecated - Return type of Zend_Session_Namespace::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[ReturnTypeWillChange] attribute should be used to temporarily suppress the notice** > $0/libs/Zend/Session/Namespace.php(44) > $1/vendor/composer/ClassLoader.php(476) > $2/vendor/composer/ClassLoader.php(344) > $3/core/Session/SessionNamespace.php(19) > $4/vendor/composer/ClassLoader.php(476) > $5/vendor/composer/ClassLoader.php(344) > $6/core/Notification/Manager.php(194) > $7/core/Notification/Manager.php(138) > $8/core/Notification/Manager.php(45) > $9/plugins/DiagnosticsExtended/DiagnosticsExtended.php(66) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/libs/Zend/Session/Namespace.php#L210 --------------- - [x] plugins/Actions/Reports/GetPageTitles.php(77) > **Deprecated - version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/Actions/Reports/GetPageTitles.php(77) > $2/core/Plugin/ViewDataTable.php(239) > $3/core/Plugin/Visualization.php(177) > $4/core/ViewDataTable/Factory.php(243) > $5/core/ViewDataTable/Factory.php(156) > $6/core/Plugin/Report.php(318) > $7/plugins/CoreHome/Controller.php(59) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderReportWidget() > $9/core/FrontController.php(619) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/Actions/Reports/GetPageTitles.php#L77 ------------------------ - [x] plugins/Actions/Reports/GetPageUrls.php(75) > **Deprecated - version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/Actions/Reports/GetPageUrls.php(75) > $2/core/Plugin/ViewDataTable.php(239) > $3/core/Plugin/Visualization.php(177) > $4/core/ViewDataTable/Factory.php(243) > $5/core/ViewDataTable/Factory.php(156) > $6/core/Plugin/Report.php(318) > $7/plugins/CoreHome/Controller.php(59) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderReportWidget() > $9/core/FrontController.php(619) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/Actions/Reports/GetPageUrls.php#L75 ---------------------- - [x] plugins/DevicePlugins/API.php(89) > **Deprecated - Automatic conversion of false to array is deprecated** > $0/plugins/DevicePlugins/API.php(89) > [internal function]: Piwik\Plugins\DevicePlugins\API->getPlugin() > $2/core/API/Proxy.php(244) > $3/core/Context.php(28) > $4/core/API/Proxy.php(335) > $5/core/API/Request.php(266) > $6/plugins/API/ProcessedReport.php(378) > $7/plugins/API/API.php(287) > [internal function]: Piwik\Plugins\API\API->getProcessedReport() > $9/core/API/Proxy.php(244) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/DevicePlugins/API.php#L89 --------------- - [x] plugins/Referrers/VisitorDetails.php(99) > **Deprecated - urldecode(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/Referrers/VisitorDetails.php(99) > $2/plugins/Referrers/VisitorDetails.php(22) > $3/plugins/Live/Visitor.php(39) > $4/plugins/Live/API.php(343) > [internal function]: Piwik\Plugins\Live\API->Piwik\Plugins\Live\{closure}() > $6/core/DataTable.php(512) > $7/core/DataTable.php(618) > $8/core/API/DataTablePostProcessor.php(303) > $9/core/API/DataTablePostProcessor.php(133) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/Referrers/VisitorDetails.php#L99 ------------- - [x] plugins/SEO/Metric/Alexa.php(38) > **Deprecated - urlencode(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/SEO/Metric/Alexa.php(38) > $2/plugins/SEO/Metric/Aggregator.php(35) > $3/plugins/SEO/Metric/ProviderCache.php(42) > $4/plugins/SEO/API.php(44) > $5/plugins/SEO/Widgets/GetRank.php(52) > $6/plugins/CoreHome/Controller.php(92) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderWidget() > $8/core/FrontController.php(619) > $9/core/FrontController.php(168) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/SEO/Metric/Alexa.php#L38 ------------- - [x] plugins/SEO/Metric/Alexa.php(57) > **Deprecated - urlencode(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/SEO/Metric/Alexa.php(57) > $2/plugins/SEO/Metric/Aggregator.php(35) > $3/plugins/SEO/Metric/ProviderCache.php(42) > $4/plugins/SEO/API.php(44) > $5/plugins/SEO/Widgets/GetRank.php(52) > $6/plugins/CoreHome/Controller.php(92) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderWidget() > $8/core/FrontController.php(619) > $9/core/FrontController.php(168) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/SEO/Metric/Alexa.php#L57 ------------- - [x] plugins/SEO/Metric/Bing.php(35) > **Deprecated - urlencode(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/SEO/Metric/Bing.php(35) > $2/plugins/SEO/Metric/Aggregator.php(35) > $3/plugins/SEO/Metric/ProviderCache.php(42) > $4/plugins/SEO/API.php(44) > $5/plugins/SEO/Widgets/GetRank.php(52) > $6/plugins/CoreHome/Controller.php(92) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderWidget() > $8/core/FrontController.php(619) > $9/core/FrontController.php(168) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/SEO/Metric/Bing.php#L35 ------------- - [x] plugins/SEO/Metric/DomainAge.php(38) > **Deprecated - str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/SEO/Metric/DomainAge.php(38) > $2/plugins/SEO/Metric/Aggregator.php(35) > $3/plugins/SEO/Metric/ProviderCache.php(42) > $4/plugins/SEO/API.php(44) > $5/plugins/SEO/Widgets/GetRank.php(52) > $6/plugins/CoreHome/Controller.php(92) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderWidget() > $8/core/FrontController.php(619) > $9/core/FrontController.php(168) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/SEO/Metric/DomainAge.php#L38 ------------- - [x] plugins/SEO/Metric/Google.php(49) > **Deprecated - urlencode(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/SEO/Metric/Google.php(49) > $2/plugins/SEO/Metric/Google.php(38) > $3/plugins/SEO/Metric/Aggregator.php(35) > $4/plugins/SEO/Metric/ProviderCache.php(42) > $5/plugins/SEO/API.php(44) > $6/plugins/SEO/Widgets/GetRank.php(52) > $7/plugins/CoreHome/Controller.php(92) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderWidget() > $9/core/FrontController.php(619) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/SEO/Metric/Google.php#L49 ------------- - [x] plugins/SEO/Metric/ProviderCache.php(37) > **Deprecated - md5(): Passing null to parameter #1 ($string) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/SEO/Metric/ProviderCache.php(37) > $2/plugins/SEO/API.php(44) > $3/plugins/SEO/Widgets/GetRank.php(52) > $4/plugins/CoreHome/Controller.php(92) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderWidget() > $6/core/FrontController.php(619) > $7/core/FrontController.php(168) > $8/core/dispatch.php(32) > $9/index.php(25) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/SEO/Metric/ProviderCache.php#L37 ------------- - [x] plugins/MultiSites/API.php(356) > **Deprecated - Automatic conversion of false to array is deprecated** > $0/plugins/MultiSites/API.php(356) > $1/plugins/MultiSites/API.php(260) > $2/plugins/MultiSites/API.php(103) > [internal function]: Piwik\Plugins\MultiSites\API->getAll() > $4/core/API/Proxy.php(244) > $5/core/Context.php(28) > $6/core/API/Proxy.php(335) > $7/core/API/Request.php(266) > $8/plugins/API/ProcessedReport.php(378) > $9/plugins/API/API.php(287) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/MultiSites/API.php#L356 ------------------ - [x] plugins/VisitsSummary/Reports/Get.php(203) > **Deprecated - version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated** > [internal function]: Piwik\ErrorHandler::errorHandler() > $1/plugins/VisitsSummary/Reports/Get.php(203) > $2/plugins/VisitsSummary/Reports/Get.php(87) > $3/core/Plugin/ViewDataTable.php(239) > $4/core/ViewDataTable/Factory.php(243) > $5/core/ViewDataTable/Factory.php(156) > $6/core/Plugin/Report.php(318) > $7/plugins/CoreHome/Controller.php(59) > [internal function]: Piwik\Plugins\CoreHome\Controller->renderReportWidget() > $9/core/FrontController.php(619) > https://github.com/matomo-org/matomo/blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/plugins/VisitsSummary/Reports/Get.php#L203
  • [ ] expects rows of numeric values

    Got invalid response from API request: ?module=API&method=CoreAdminHome.archiveReports&idSite=16&period=month&date=2020-09-01&format=json&trigger=archivephp. Response was
    DataArray->sumMetricsPivot expects rows of numeric values, non numeric found: '2020-09-14' for column 0 - in plugin Cohorts. #0 \/home\/lukas\/public_html\/matomophp8\/core\/ArchiveProcessor\/Loader.php(218): Piwik\ArchiveProcessor\PluginsArchiver->callAggregateAllPlugins(1, 0, false) #1 \/home\/lukas\/public_html\/matomophp8\/core\/ArchiveProcessor\/Loader.php(158): Piwik\ArchiveProcessor\Loader->prepareAllPluginsArchive(1, 0) #2 \/home\/lukas\/public_html\/matomophp8\/core\/ArchiveProcessor\/Loader.php(101): Piwik\ArchiveProcessor\Loader->prepareArchiveImpl('VisitsSummary') #3 \/home\/lukas\/public_html\/matomophp8\/core\/Context.php(75): Piwik\ArchiveProcessor\Loader->Piwik\ArchiveProcessor\{closure}() #4 \/home\/lukas\/public_html\/matomophp8\/core\/ArchiveProcessor\/Loader.php(105): Piwik\Context::changeIdSite(16, Object(Closure)) #5 \/home\/lukas\/public_html\/matomophp8\/plugins\/CoreAdminHome\/API.php(278): Piwik\ArchiveProcessor\Loader->prepareArchive('VisitsSummary') #6 \/home\/lukas\/public_html\/matomophp8\/core\/Archive.php(830): Piwik\Plugins\CoreAdminHome\API->archiveReports(16, Object(Piwik\Period\Week), '2020-09-14', '', 'VisitsSummary', '') #7 \/home\/lukas\/public_html\/matomophp8\/core\/Archive.php(629): Piwik\Archive->prepareArchive(Array, Object(Piwik\Site), Object(Piwik\Period\Week)) #8 \/home\/lukas\/public_html\/matomophp8\/core\/Archive.php(576): Piwik\Archive->cacheArchiveIdsAfterLaunching(Array, Array) #9 \/home\/lukas\/public_html\/matomophp8\/core\/Archive.php(502): Piwik\Archive->getArchiveIds(Array) #10 \/home\/lukas\/public_html\/matomophp8\/core\/Archive.php(312): Piwik\Archive->get(Array, 'numeric')
    [...]

  • not sure if this one is related to php8.1

  • [ ] vendor/davaxi/sparkline/src/Sparkline/Picture.php(115)+(138)
  • https://github.com/davaxi/Sparkline/issues/19

    Deprecated - Implicit conversion from float 695.5555555555555 to int loses precision

    $1/vendor/davaxi/sparkline/src/Sparkline/Picture.php(115)
    $2/vendor/davaxi/sparkline/src/Sparkline.php(124)
    $3/vendor/davaxi/sparkline/src/Sparkline.php(188)
    $4/core/Visualization/Sparkline.php(215)
    $5/plugins/CoreVisualizations/Visualizations/Sparkline.php(107)
    $6/core/Plugin/Controller.php(247)
    $7/plugins/UserCountry/Controller.php(142)

    $9/core/FrontController.php(619)

  • fixed in https://github.com/matomo-org/matomo/pull/18211

  • [ ] vendor/szymach/c-pchart/src/Chart/BaseDraw.php(290)+(512)+Draw.php(1312)
  • https://github.com/szymach/c-pchart/issues/69

    Deprecated - Implicit conversion from float 74.08333333332371 to int loses precision

    $1/vendor/szymach/c-pchart/src/Chart/BaseDraw.php(290)
    $2/vendor/szymach/c-pchart/src/Chart/Draw.php(1569)
    $3/vendor/szymach/c-pchart/src/Chart/Draw.php(1517)
    $4/vendor/szymach/c-pchart/src/Chart/Draw.php(987)
    $5/vendor/szymach/c-pchart/src/Chart/Draw.php(115)
    $6/vendor/szymach/c-pchart/src/Chart/Draw.php(910)
    $7/vendor/szymach/c-pchart/src/Chart/Draw.php(6001)
    $8/plugins/ImageGraph/StaticGraph/Evolution.php(27)
    $9/plugins/ImageGraph/API.php(496)


  • [ ] vendor/szymach/c-pchart/src/Chart/Draw.php(82)
  • https://github.com/szymach/c-pchart/issues/68

    Deprecated - imagefilledpolygon(): Using the $num_points parameter is deprecated

    $1/vendor/szymach/c-pchart/src/Chart/Draw.php(82)
    $2/vendor/szymach/c-pchart/src/Chart/Draw.php(910)
    $3/vendor/szymach/c-pchart/src/Chart/Draw.php(6001)
    $4/plugins/ImageGraph/StaticGraph/Evolution.php(27)
    $5/plugins/ImageGraph/API.php(496)

    $7/core/API/Proxy.php(244)
    $8/core/Context.php(28)
    $9/core/API/Proxy.php(335)


  • [x] vendor/twig/twig/src/Markup.php(38)+(43)
  • fixed in https://github.com/twigphp/Twig/pull/3552 (no release yet)

    Deprecated - Return type of Twig\Markup::count() should either be compatible with Countable::count(): int, or the #[ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
    $0/vendor/twig/twig/src/Markup.php(19)
    $1/vendor/composer/ClassLoader.php(476)
    $2/vendor/composer/ClassLoader.php(344)
    $3/tmp/templates_c/7a/7a036532364d2339c82a6df4f07f7846cf6cbdec663dc41aa70fa9438b6cc75a.php(44)
    $4/vendor/twig/twig/src/Template.php(394)
    $5/vendor/twig/twig/src/Template.php(367)
    $6/vendor/twig/twig/src/Template.php(379)
    $7/vendor/twig/twig/src/TemplateWrapper.php(40)
    $8/vendor/twig/twig/src/Environment.php(277)
    $9/core/View.php(318)


  • [ ] look at usages like $idSite == 'all' and use $idSite === 'all' and similar ones see https://3v4l.org/17cZ2

  • [x] vendor/twig/twig/src/Node/Node.php(151)
  • fixed in https://github.com/twigphp/Twig/pull/3552 (no release yet)

    Deprecated - Return type of Twig\Node\Node::count() should either be compatible with Countable::count(): int, or the #[ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
    $0/vendor/twig/twig/src/Node/Node.php(23)
    $1/vendor/composer/ClassLoader.php(476)
    $2/vendor/composer/ClassLoader.php(344)
    $3/vendor/twig/twig/src/Node/TextNode.php(22)
    $4/vendor/composer/ClassLoader.php(476)
    $5/vendor/composer/ClassLoader.php(344)
    $6/vendor/twig/twig/src/Parser.php(123)
    $7/vendor/twig/twig/src/Parser.php(84)
    $8/vendor/twig/twig/src/Environment.php(479)
    $9/vendor/twig/twig/src/Environment.php(507)

to be updated...

@Findus23 commented on August 9th 2021 Member

Some more unsorted warnings:


WARNING [2021-08-09 21:54:51] 266648  /home/lukas/public_html/matomophp8/core/AssetManager/UIAssetCacheBuster.php(49): Deprecated - trim(): Passing null to parameter <a href='/1'>#1</a> ($string) of type string is deprecated - Matomo 4.4.1 - Please report this message in the Matomo forums: https://forum.matomo.org (please do a search first as it might have been reported already)
@Findus23 commented on August 11th 2021 Member

matomo.log gets really large really quickly as there are many deprecation warnings that are called many times per request.

So I wrote a quick script to deduplicate all warnings to make it easier to see them:

logging.py ```python import re basepath = "/home/lukas/public_html/matomophp8/" regex = re.compile(r"\[[\d\w]+\] ([/\w\-\.()]+):(.+) - Matomo 4.4.+ ((?:(?:#0)|(?:\[internal function\])).*)") warnings = {} with open("tmp/logs/matomo.log") as f: for line in f: if not line.startswith("WARNING"): continue # print(line) result = regex.findall(line) if not result: print(line) print(result) continue path, warning, trace = result[0] trace = trace.replace("#","$").split(",") warnings[path] = (warning, trace) # overwrites warnings in the same line warnings = dict(sorted(warnings.items(), key=lambda item: item[0])) for path, data in warnings.items(): warning, trace = data path = path.replace(basepath, "").strip() print("- [ ]", path) print(">", warning.strip()) for line in trace: print(">",line) file = path.split("(")[0] lineno = path.split("(")[-1][:-1] if "vendor" not in file: print("> " "https://github.com/matomo-org/matomo/" "blob/99136cbf3183833b5d9dedb7943873fb8c3a8da5/" f"{file}#L{lineno}") print() print(len(warnings), "unique warnings") ```

I'll add all new warnings I find in the issue above (now also with stack trace as I think some of them are only fixable when knowing where the data comes from).

@justinvelluppillai commented on August 30th 2021 Contributor

Is it better to make a number of smaller PRs to get these fixes merged or combine them all into one? I've made a few fixes in #17929, there are also many plugin PRs coming.

@tsteur commented on August 30th 2021 Member

@justinvelluppillai small ones be a lot better.

@geekdenz commented on September 13th 2021 Contributor

Is this too small or a good size?

https://github.com/matomo-org/matomo/pull/17989

I could simply add more commits like this to not make too many PRs.

@tsteur commented on September 13th 2021 Member

It's hard to say re too small or good size @geekdenz . You want to put things that fix the same kind of issue into the same PR. Like if count() is a problem then you put all the places where count is a problem in the same PR. If that then applies to say to more than 10 different files then it may be good to split it in multiple PRs probably simply for the review to be easier but it really depends on a case by case basis.

@geekdenz commented on September 13th 2021 Contributor

OK. Thanks @tsteur .

I recommend we leave this until at least xdebug works with PHP 8.1.

root<a class='mention' href='https://github.com/42b8ea256385'>@42b8ea256385</a>:/usr/src/myapp# pecl install xdebug
pecl/xdebug requires PHP (version >= 7.2.0, version <= 8.0.99), installed version is 8.1.0RC1
No valid packages found
install failed

I could not login and it seemed to be in a loop which is hard to debug without a debugger.

@geekdenz commented on September 13th 2021 Contributor

Basics Work

I gave it another shot without running the VisitorGenerator plugin and basics seem to work now. :-)

image
@Findus23 commented on September 13th 2021 Member

My take on "too small" would be to limit the number of PRs, but make a separate commit per fix.

basics seem to work now

I think the basics (as in clicking around in the Matomo UI) already worked before I made any changes. But I might be misremembering something.

@geekdenz commented on September 13th 2021 Contributor

too small

It's using one's best judgement what is too small or too big i guess.

basics seem to work now

Yeah, just had a quick look at the ui which seems to work. The main problem is probably the tracker.

@tsteur commented on September 30th 2021 Member

We might also need to look at usages like $idSite == 'all' and use $idSite === 'all' and similar ones see https://3v4l.org/17cZ2 will add it to the list

@davaxi commented on October 1st 2021

Sparkline has been updated for PHP 8 :)

Powered by GitHub Issue Mirror