matomo-org / matomo

Empowering People Ethically with the leading open source alternative to Google Analytics that gives you full control over your data. Matomo lets you easily collect data from websites & apps and visualise this data and extract insights. Privacy is built-in. Liberating Web Analytics. Star us on Github? +1. And we love Pull Requests!
https://matomo.org/
GNU General Public License v3.0
19.82k stars 2.64k forks source link

Running the tests on PHP7 may result in "PHP Fatal error: Cannot use 'Null' as class name as it is reserved" #10411

Closed mattab closed 8 years ago

mattab commented 8 years ago

eg.

$ ./console tests:run plugins/MultiSites/tests/Integration/MultiSitesTest.php 
Did you know? You can run tests faster by disabling xdebug (if you need xdebug, speed up tests by setting xdebug.coverage_enable=0)
Executing command: cd /home/matt/dev/piwik-master/tests/PHPUnit && /home/matt/dev/piwik-master/vendor/bin/phpunit   ../../plugins/MultiSites/tests/Integration/MultiSitesTest.php
PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

Runtime:    PHP 7.0.9-1+deb.sury.org~trusty+1 with Xdebug 2.4.0
Configuration:  /home/matt/dev/piwik-master/tests/PHPUnit/phpunit.xml.dist

PHP Fatal error:  Cannot use 'Null' as class name as it is reserved in /home/matt/dev/piwik-master/core/Settings/Storage/Backend/Null.php on line 18
PHP Stack trace:
PHP   1. {main}() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/phpunit:0
PHP   2. PHPUnit_TextUI_Command::main() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/phpunit:47
PHP   3. PHPUnit_TextUI_Command->run() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/TextUI/Command.php:100
PHP   4. PHPUnit_TextUI_TestRunner->doRun() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/TextUI/Command.php:149
PHP   5. PHPUnit_Framework_TestSuite->run() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:440
PHP   6. PHPUnit_Framework_TestCase->run() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/Framework/TestSuite.php:747
PHP   7. PHPUnit_Framework_TestResult->run() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/Framework/TestCase.php:724
PHP   8. PHPUnit_Framework_TestCase->runBare() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/Framework/TestResult.php:612
PHP   9. Piwik\Plugins\MultiSites\tests\Integration\MultiSitesTest->setUp() /home/matt/dev/piwik-master/vendor/phpunit/phpunit/src/Framework/TestCase.php:764
PHP  10. Piwik\Plugins\SitesManager\API->addSite() /home/matt/dev/piwik-master/plugins/MultiSites/tests/Integration/MultiSitesTest.php:32
PHP  11. Piwik\Plugins\SitesManager\API->setAndValidateMeasurableSettings() /home/matt/dev/piwik-master/plugins/SitesManager/API.php:622
PHP  12. Piwik\Plugin\SettingsProvider->getAllMeasurableSettings() /home/matt/dev/piwik-master/plugins/SitesManager/API.php:693
PHP  13. Piwik\Plugin\SettingsProvider->getMeasurableSettings() /home/matt/dev/piwik-master/core/Plugin/SettingsProvider.php:185
PHP  14. DI\Container->make() /home/matt/dev/piwik-master/core/Plugin/SettingsProvider.php:161
PHP  15. DI\Container->resolveDefinition() /home/matt/dev/piwik-master/vendor/php-di/php-di/src/DI/Container.php:170
PHP  16. DI\Definition\Resolver\ResolverDispatcher->resolve() /home/matt/dev/piwik-master/vendor/php-di/php-di/src/DI/Container.php:285
PHP  17. DI\Definition\Resolver\ObjectCreator->resolve() /home/matt/dev/piwik-master/vendor/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php:60
PHP  18. DI\Definition\Resolver\ObjectCreator->createInstance() /home/matt/dev/piwik-master/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php:79
PHP  19. ReflectionClass->newInstanceArgs() /home/matt/dev/piwik-master/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php:159
PHP  20. Piwik\Plugins\WebsiteMeasurable\MeasurableSettings->__construct() /home/matt/dev/piwik-master/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php:159
PHP  21. Piwik\Settings\Measurable\MeasurableSettings->__construct() /home/matt/dev/piwik-master/plugins/WebsiteMeasurable/MeasurableSettings.php:81
PHP  22. Piwik\Plugins\WebsiteMeasurable\MeasurableSettings->init() /home/matt/dev/piwik-master/core/Settings/Measurable/MeasurableSettings.php:65
PHP  23. Piwik\Plugins\WebsiteMeasurable\Settings\Urls->__construct() /home/matt/dev/piwik-master/plugins/WebsiteMeasurable/MeasurableSettings.php:86
PHP  24. Piwik\Settings\Measurable\MeasurableProperty->__construct() /home/matt/dev/piwik-master/plugins/WebsiteMeasurable/Settings/Urls.php:28
PHP  25. Piwik\Settings\Storage\Factory->getSitesTable() /home/matt/dev/piwik-master/core/Settings/Measurable/MeasurableProperty.php:61
PHP  26. Piwik\Settings\Storage\Factory->getNonPersistentStorage() /home/matt/dev/piwik-master/core/Settings/Storage/Factory.php:91
PHP  27. spl_autoload_call() /home/matt/dev/piwik-master/core/Settings/Storage/Factory.php:110
PHP  28. Composer\Autoload\ClassLoader->loadClass() /home/matt/dev/piwik-master/core/Settings/Storage/Factory.php:110
PHP  29. Composer\Autoload\includeFile() /home/matt/dev/piwik-master/vendor/composer/ClassLoader.php:301
mattab commented 8 years ago

Fixed this recently in https://github.com/piwik/piwik/pull/10545