| @@ -5,33 +5,99 @@ | ||
| 5 | 5 | * @package Packeta |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | use Packetery\Module\CompatibilityBridge; |
| 9 | -use Packetery\Module\Helper; | |
| 10 | -use PacketeryNette\Bootstrap\Configurator; | |
| 9 | +use Packetery\Module\ModuleHelper; | |
| 10 | +use Packetery\Module\Options\OptionNames; | |
| 11 | +use Packetery\Module\Plugin; | |
| 12 | +use Packetery\Module\WpdbTracyPanel; | |
| 13 | +use Packetery\Nette\Bootstrap\Configurator; | |
| 14 | +use Packetery\Nette\Http\RequestFactory; | |
| 15 | +use Packetery\Nette\InvalidStateException; | |
| 16 | +use Packetery\Nette\Utils\FileSystem; | |
| 17 | +use Packetery\Tracy\Debugger; | |
| 11 | 18 | |
| 12 | -defined( 'PACKETERY_PLUGIN_DIR' ) || define( 'PACKETERY_PLUGIN_DIR', __DIR__ ); | |
| 13 | -defined( 'PACKETERY_DEBUG' ) || define( 'PACKETERY_DEBUG', false ); | |
| 19 | +require_once __DIR__ . '/constants.php'; | |
| 20 | +require_once __DIR__ . '/deps/scoper-autoload.php'; | |
| 14 | 21 | |
| 15 | -require_once __DIR__ . '/packetery_vendor/autoload.php'; | |
| 22 | +$disableGetPostCookieParsing = false; | |
| 23 | +if ( PHP_SAPI !== 'cli' ) { | |
| 24 | + try { | |
| 25 | + ( new RequestFactory() )->fromGlobals(); | |
| 26 | + } catch ( InvalidStateException $invalidStateException ) { | |
| 27 | + $disableGetPostCookieParsing = true; | |
| 28 | + } | |
| 29 | +} | |
| 16 | 30 | |
| 17 | -require_once __DIR__ . '/src/Packetery/Module/Helper.php'; | |
| 18 | -Helper::transformGlobalCookies(); | |
| 31 | +$cacheBasePathConstantName = 'PACKETERY_CACHE_BASE_PATH'; | |
| 19 | 32 | |
| 33 | +if ( defined( $cacheBasePathConstantName ) ) { | |
| 34 | + $tempDir = constant( $cacheBasePathConstantName ); | |
| 35 | + Filesystem::createDir( $tempDir, 0775 ); | |
| 36 | + $logBaseDir = $tempDir; | |
| 37 | +} else { | |
| 38 | + $tempDir = __DIR__ . '/temp'; | |
| 39 | + $logBaseDir = PACKETERY_PLUGIN_DIR; | |
| 40 | +} | |
| 41 | + | |
| 20 | 42 | $configurator = new Configurator(); |
| 43 | + | |
| 44 | +$configurator->defaultExtensions = []; | |
| 21 | 45 | $configurator->setDebugMode( PACKETERY_DEBUG ); |
| 46 | +$configurator->setTempDirectory( $tempDir ); | |
| 47 | +$configurator->createRobotLoader() | |
| 48 | + ->addDirectory( __DIR__ . '/src' ) | |
| 49 | + ->setAutoRefresh( false ) | |
| 50 | + ->register(); | |
| 22 | 51 | |
| 23 | -if ( PACKETERY_DEBUG && false === wp_doing_cron() ) { | |
| 24 | - $configurator->enableDebugger( PACKETERY_PLUGIN_DIR . '/log' ); | |
| 25 | - \PacketeryTracy\Debugger::$strictMode = false; | |
| 52 | +$cacheDir = $tempDir . '/cache'; | |
| 53 | +Filesystem::createDir( $cacheDir, 0775 ); | |
| 54 | + | |
| 55 | +$oldVersion = get_option( OptionNames::VERSION ); | |
| 56 | +if ( $oldVersion !== Plugin::VERSION ) { | |
| 57 | + ModuleHelper::instantDelete( $cacheDir ); | |
| 26 | 58 | } |
| 27 | 59 | |
| 60 | +$configurator->addStaticParameters( | |
| 61 | + [ | |
| 62 | + 'cacheDir' => $cacheDir, | |
| 63 | + ] | |
| 64 | +); | |
| 65 | +$configurator->addDynamicParameters( | |
| 66 | + [ | |
| 67 | + 'disableGetPostCookieParsing' => $disableGetPostCookieParsing, | |
| 68 | + ] | |
| 69 | +); | |
| 70 | + | |
| 71 | +Debugger::$logDirectory = $logBaseDir . '/log'; | |
| 72 | +Filesystem::createDir( Debugger::$logDirectory, 0775 ); | |
| 73 | + | |
| 74 | +if ( $configurator->isDebugMode() && wp_doing_cron() === false ) { | |
| 75 | + $configurator->enableDebugger( Debugger::$logDirectory ); | |
| 76 | + Debugger::$strictMode = false; | |
| 77 | +} | |
| 78 | + | |
| 28 | 79 | $configurator->addConfig( __DIR__ . '/config/config.neon' ); |
| 29 | -$configurator->setTempDirectory( __DIR__ . '/temp' ); | |
| 30 | -$configurator->createRobotLoader()->addDirectory( __DIR__ . '/src' )->setAutoRefresh( false )->register(); | |
| 31 | 80 | |
| 32 | -$configurator->defaultExtensions = []; | |
| 81 | +$localConfigFile = __DIR__ . '/config/config.local.neon'; | |
| 82 | +if ( file_exists( $localConfigFile ) ) { | |
| 83 | + $configurator->addConfig( $localConfigFile ); // Local Development ENV only! | |
| 84 | +} | |
| 33 | 85 | |
| 86 | +$wpContentConfigDir = WP_CONTENT_DIR . '/packeta/config/'; | |
| 87 | +if ( is_dir( $wpContentConfigDir ) ) { | |
| 88 | + $configFiles = glob( $wpContentConfigDir . '*.neon' ); | |
| 89 | + if ( $configFiles !== false ) { | |
| 90 | + foreach ( $configFiles as $configFile ) { | |
| 91 | + $configurator->addConfig( $configFile ); | |
| 92 | + } | |
| 93 | + } | |
| 94 | +} | |
| 95 | + | |
| 34 | 96 | $container = $configurator->createContainer(); |
| 35 | 97 | CompatibilityBridge::setContainer( $container ); |
| 98 | + | |
| 99 | +if ( Debugger::isEnabled() ) { | |
| 100 | + Debugger::getBar()->addPanel( $container->getByType( WpdbTracyPanel::class ) ); | |
| 101 | +} | |
| 36 | 102 | |
| 37 | 103 | return $container; |