API
1 month ago
Access
3 months ago
Application
1 month ago
Archive
1 month ago
ArchiveProcessor
1 month ago
Archiver
2 years ago
AssetManager
1 month ago
Auth
6 months ago
Category
6 months ago
Changes
1 month ago
CliMulti
1 year ago
Columns
1 month ago
Concurrency
1 month ago
Config
1 month ago
Container
1 month ago
CronArchive
3 months ago
DataAccess
1 month ago
DataFiles
2 years ago
DataTable
2 weeks ago
Db
2 weeks ago
DeviceDetector
1 year ago
Email
2 years ago
Exception
4 months ago
Http
4 months ago
Intl
3 months ago
Log
2 years ago
Mail
1 year ago
Measurable
6 months ago
Menu
1 month ago
Metrics
3 months ago
Notification
6 months ago
Period
1 month ago
Plugin
2 weeks ago
Policy
1 month ago
ProfessionalServices
1 year ago
Report
1 year ago
ReportRenderer
3 months ago
Request
3 months ago
Scheduler
1 month ago
Segment
1 month ago
Session
2 weeks ago
Settings
1 month ago
Tracker
2 weeks ago
Translation
1 month ago
Twig
1 year ago
UpdateCheck
3 months ago
Updater
1 month ago
Updates
2 days ago
Validators
1 year ago
View
1 month ago
ViewDataTable
2 weeks ago
Visualization
1 year ago
Widget
1 month ago
.htaccess
2 years ago
Access.php
1 month ago
Archive.php
1 month ago
ArchiveProcessor.php
1 month ago
AssetManager.php
1 month ago
Auth.php
6 months ago
AuthResult.php
6 months ago
BaseFactory.php
2 years ago
Cache.php
2 years ago
CacheId.php
4 months ago
CliMulti.php
1 month ago
Common.php
2 weeks ago
Config.php
1 month ago
Console.php
3 months ago
Context.php
2 years ago
Cookie.php
1 year ago
CronArchive.php
1 month ago
DI.php
3 months ago
DataArray.php
1 month ago
DataTable.php
1 month ago
Date.php
1 month ago
Db.php
1 month ago
DbHelper.php
1 month ago
Development.php
1 year ago
ErrorHandler.php
6 months ago
EventDispatcher.php
1 month ago
ExceptionHandler.php
4 months ago
FileIntegrity.php
1 month ago
Filechecks.php
1 year ago
Filesystem.php
1 month ago
FrontController.php
4 months ago
Http.php
1 month ago
IP.php
1 year ago
Log.php
3 months ago
LogDeleter.php
1 year ago
Mail.php
1 year ago
Metrics.php
1 month ago
NoAccessException.php
2 years ago
Nonce.php
6 months ago
Notification.php
1 month ago
NumberFormatter.php
5 months ago
Option.php
5 months ago
Period.php
1 month ago
Piwik.php
1 month ago
Plugin.php
1 month ago
Process.php
1 month ago
Profiler.php
6 months ago
ProxyHeaders.php
4 months ago
ProxyHttp.php
5 months ago
QuickForm2.php
3 months ago
RankingQuery.php
1 month ago
ReportRenderer.php
1 month ago
Request.php
1 month ago
Segment.php
1 month ago
Sequence.php
6 months ago
Session.php
2 weeks ago
SettingsPiwik.php
1 month ago
SettingsServer.php
1 year ago
Singleton.php
2 years ago
Site.php
1 month ago
SiteContentDetector.php
1 month ago
SupportedBrowser.php
2 years ago
TCPDF.php
1 year ago
Theme.php
1 year ago
Timer.php
1 month ago
Tracker.php
1 month ago
Twig.php
1 month ago
Unzip.php
1 year ago
UpdateCheck.php
1 month ago
Updater.php
1 month ago
UpdaterErrorException.php
2 years ago
Updates.php
3 months ago
Url.php
3 months ago
UrlHelper.php
1 month ago
Version.php
2 days ago
View.php
1 month ago
bootstrap.php
1 year ago
dispatch.php
2 years ago
testMinimumPhpVersion.php
6 months ago
bootstrap.php
65 lines
| 1 | <?php |
| 2 | |
| 3 | namespace { |
| 4 | /** |
| 5 | * Matomo - free/libre analytics platform |
| 6 | * |
| 7 | * @link https://matomo.org |
| 8 | * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later |
| 9 | * |
| 10 | * Bootstraps the Piwik application. |
| 11 | * |
| 12 | * This file cannot be a class because it needs to be compatible with PHP 4. |
| 13 | */ |
| 14 | if (!\defined('PIWIK_USER_PATH')) { |
| 15 | \define('PIWIK_USER_PATH', \PIWIK_DOCUMENT_ROOT); |
| 16 | } |
| 17 | $errorLevel = \E_ALL; |
| 18 | // We cannot enable deprecations for PHP 8.4 until we are able to update php-di/php-di to a version compatible |
| 19 | // with PHP 8.4. Otherwise deprecation notices would be triggered at a point where they break Matomo completely. |
| 20 | if (\version_compare(\PHP_VERSION, '8.4.0-dev', '>=')) { |
| 21 | $errorLevel = \E_ALL & ~\E_DEPRECATED; |
| 22 | } |
| 23 | \error_reporting($errorLevel); |
| 24 | @\ini_set('display_errors', \defined('PIWIK_DISPLAY_ERRORS') ? \PIWIK_DISPLAY_ERRORS : @\ini_get('display_errors')); |
| 25 | @\ini_set('xdebug.show_exception_trace', 0); |
| 26 | if (!\defined('PIWIK_VENDOR_PATH')) { |
| 27 | if (\is_dir(\PIWIK_INCLUDE_PATH . '/vendor')) { |
| 28 | \define('PIWIK_VENDOR_PATH', \PIWIK_INCLUDE_PATH . '/vendor'); |
| 29 | // Piwik is the main project |
| 30 | } else { |
| 31 | \define('PIWIK_VENDOR_PATH', \PIWIK_INCLUDE_PATH . '/../..'); |
| 32 | // Piwik is installed as a Composer dependency |
| 33 | } |
| 34 | } |
| 35 | // NOTE: the code above must be PHP 4 compatible |
| 36 | require_once \PIWIK_INCLUDE_PATH . '/core/testMinimumPhpVersion.php'; |
| 37 | if (\session_status() !== \PHP_SESSION_ACTIVE && !\headers_sent()) { |
| 38 | \session_cache_limiter('nocache'); |
| 39 | } |
| 40 | \define('PIWIK_DEFAULT_TIMEZONE', @\date_default_timezone_get()); |
| 41 | @\date_default_timezone_set('UTC'); |
| 42 | \disableEaccelerator(); |
| 43 | require_once \PIWIK_INCLUDE_PATH . '/libs/upgradephp/upgrade.php'; |
| 44 | // Composer autoloader |
| 45 | require_once \PIWIK_VENDOR_PATH . '/autoload.php'; |
| 46 | require_once \PIWIK_INCLUDE_PATH . '/libs/upgradephp/dev.php'; |
| 47 | require_once \PIWIK_INCLUDE_PATH . '/DIObject.php'; |
| 48 | \Piwik\Plugin\Manager::initPluginDirectories(); |
| 49 | /** |
| 50 | * Eaccelerator does not support closures and is known to be not compatible with Piwik. Therefore we are disabling |
| 51 | * it automatically. At this point it looks like Eaccelerator is no longer under development and the bug has not |
| 52 | * been fixed within a year. |
| 53 | * |
| 54 | * @link https://github.com/piwik/piwik/issues/4439#comment:8 |
| 55 | * @link https://github.com/eaccelerator/eaccelerator/issues/12 |
| 56 | */ |
| 57 | function disableEaccelerator() |
| 58 | { |
| 59 | $isEacceleratorUsed = \ini_get('eaccelerator.enable'); |
| 60 | if (!empty($isEacceleratorUsed)) { |
| 61 | @\ini_set('eaccelerator.enable', 0); |
| 62 | } |
| 63 | } |
| 64 | } |
| 65 |