<?php declare(strict_types=1); namespace OxidProfessionalServices\Captcha\Application\Core; use OxidProfessionalServices\Captcha\Application\Shared\Connection; class Module { use Connection; public const ID = 'oecaptcha'; public const VERSION = '7.0.0'; protected static $__instance; public static function getInstance() { return static::$__instance ?? (static::$__instance = oxNew(static::class)); } public static function onActivate(): void { static::getInstance()->activate(); } public static function onDeactivate(): void { static::getInstance()->deactivate(); } public function createTable(): void { $this->getDb()->executeStatement(' CREATE TABLE IF NOT EXISTS `oecaptcha` (' . "`OXID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Captcha id'," . "`OXHASH` char(32) NOT NULL default '' COMMENT 'Hash'," . "`OXTIME` int(11) NOT NULL COMMENT 'Validation time'," . "`OXTIMESTAMP` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT 'Timestamp'," . 'PRIMARY KEY (`OXID`), ' . 'KEY `OXID` (`OXID`,`OXHASH`), ' . 'KEY `OXTIME` (`OXTIME`) ' . ") ENGINE=MEMORY AUTO_INCREMENT=1 COMMENT 'If session is not available, this is where captcha information is stored'; "); } public function dropTable(): void { $this->getDb()->executeStatement('DROP TABLE IF EXISTS `oecaptcha`;'); } public function activate(): void { $this->createTable(); } public function deactivate(): void { $this->dropTable(); } }