From d4b19712c271c3bf9d16909768c4bd84d617afd5 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Mon, 20 Jun 2011 14:26:39 +0000 Subject: killed the experimental activecontrols implementation backported from yii --- .../Testing/Data/Analysis/TDbStatementAnalysis.php | 238 --------------------- .../Data/Analysis/TSimpleDbStatementAnalysis.php | 134 ------------ 2 files changed, 372 deletions(-) delete mode 100644 framework/Testing/Data/Analysis/TDbStatementAnalysis.php delete mode 100644 framework/Testing/Data/Analysis/TSimpleDbStatementAnalysis.php (limited to 'framework/Testing/Data/Analysis') diff --git a/framework/Testing/Data/Analysis/TDbStatementAnalysis.php b/framework/Testing/Data/Analysis/TDbStatementAnalysis.php deleted file mode 100644 index 46f9b745..00000000 --- a/framework/Testing/Data/Analysis/TDbStatementAnalysis.php +++ /dev/null @@ -1,238 +0,0 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2010 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - */ - - /** - * IDbStatementAnalysis interface - * - * @author Yves Berkholz - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - * @since 4.0 - */ - interface IDbStatementAnalysis - { - /** - * @param TDbStatementAnalysisParamete - * @return TDbStatementClassification - */ - public static function doClassificationAnalysis(TDbStatementAnalysisParameter $param); - - /** - * @param TDbStatementAnalysisParameter - * @return TDbStatementClassification - */ - public function getClassificationAnalysis(TDbStatementAnalysisParameter $param); - - /** - * @param string PDO drivername of connection - */ - public function setDriverName($value); - - /** - * @return string PDO drivername of connection - */ - public function getDriverName(); - } - - /** - * TDbStatementAnalysisParameter class - * - * - * @author Yves Berkholz - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - * @since 4.0 - */ - class TDbStatementAnalysisParameter - { - /** - * @var string The SQL statement that should be analysed - */ - protected $_statement = null; - - /** - * TDbStatementClassification Defaults to 'UNKNOWN' - */ - protected $_defaultClassification = TDbStatementClassification::UNKNOWN; - - /** - * string|null PDO drivername of connection - */ - protected $_drivername = null; - - /** - * @param string The SQL statement that should be analysed - * @param TDbStatementClassification - * @param string|null PDO drivername of connection - */ - public function __construct($statement='', $defaultClassification=null, $drivername=null) - { - $this->setStatement($statement); - $this->setDefaultClassification($defaultClassification); - $this->setDriverName($drivername); - } - - /** - * @param string The SQL statement that should be analysed - */ - public function setStatement($value) - { - $this->_statement = (string)$value; - } - - /** - * @return string The SQL statement that should be analysed - */ - public function getStatement() - { - return $this->_statement; - } - - /** - * @param string|null PDO drivername of connection - */ - public function setDriverName($value) - { - $this->_drivername = ($value===null) ? null : (string)$value; - } - - /** - * @return string|null PDO drivername of connection - */ - public function getDriverName() - { - return $this->_drivername; - } - - /** - * @param TDbStatementClassification Defaults to 'UNKNOWN' - */ - public function setDefaultClassification($value) - { - if($value!==null) - $this->_defaultClassification = (string)$value; - else - $this->_defaultClassification = TDbStatementClassification::UNKNOWN; - } - - /** - * @return TDbStatementClassification - */ - public function getDefaultClassification() - { - return $this->_defaultClassification; - } - } - - /** - * TDbStatementAnalysis class - * - * Basic "dummy" implementation allways return {@link TDbStatementAnalysisParameter::getDefaultClassification DefaultClassification} - * - * @author Yves Berkholz - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - * @since 4.0 - */ - class TDbStatementAnalysis implements IDbStatementAnalysis - { - /** - * @var string|null PDO drivername of connection - */ - protected $_drivername = null; - - /** - * @param string|null PDO drivername of connection - */ - public function setDriverName($value) - { - $this->_drivername = ($value===null) ? null : (string)$value; - } - - /** - * @return string|null PDO drivername of connection - */ - public function getDriverName() - { - return $this->_drivername; - } - - /** - * @param TDbStatementAnalysisParamete - * @return TDbStatementClassification - */ - public static function doClassificationAnalysis(TDbStatementAnalysisParameter $param) - { - return $param->getDefaultClassification(); - } - - /** - * @param TDbStatementAnalysisParameter - * @return TDbStatementClassification - */ - public function getClassificationAnalysis(TDbStatementAnalysisParameter $param) - { - return $param->getDefaultClassification(); - } - } - - /** - * TDbStatementClassification - * - * @author Yves Berkholz - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - * @since 4.0 - */ - class TDbStatementClassification extends TEnumerable - { - /** - * Structured Query Language - */ - const SQL = 'SQL'; - - /** - * Data Definition Language - */ - const DDL = 'DDL'; - - /** - * Data Manipulation Language - */ - const DML = 'DML'; - - /** - * Data Control Language - */ - const DCL = 'DCL'; - - /** - * Transaction Control Language - */ - const TCL = 'TCL'; - - /** - * classification depends on subsequent statement(s) - */ - const CONTEXT = 'CONTEXT'; - - /** - * unable to detect real classification or multiple possibilities - */ - const UNKNOWN = 'UNKNOWN'; - } -?> diff --git a/framework/Testing/Data/Analysis/TSimpleDbStatementAnalysis.php b/framework/Testing/Data/Analysis/TSimpleDbStatementAnalysis.php deleted file mode 100644 index e4ab3391..00000000 --- a/framework/Testing/Data/Analysis/TSimpleDbStatementAnalysis.php +++ /dev/null @@ -1,134 +0,0 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2010 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - */ - - Prado::using('System.Testing.Data.Analysis.TDbStatementAnalysis'); - - /** - * TSimpleDbStatementAnalysis class - * - * IMPORTANT!!! - * BETA Version - Use with care and NOT in production environment (only tested with MySql) - * - * @author Yves Berkholz - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Testing.Data.Analysis - * @since 4.0 - * @todo SELECT * FOR UPDATE (row lock) - * @todo SELECT * INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table (PostgreSQL) - * @todo mysql conditional commands in multiline comments e.g. / *! MySQL specific code * / - */ - class TSimpleDbStatementAnalysis extends TDbStatementAnalysis - { - /** - * @var array mapping of commands to classification - */ - protected static $mappingClassificationAnalysis = array( - 'CREATE' => TDbStatementClassification::DDL, - 'DROP' => TDbStatementClassification::DDL, - 'ALTER' => TDbStatementClassification::DDL, - 'RENAME' => TDbStatementClassification::DDL, - - 'INSERT' => TDbStatementClassification::DML, - 'UPDATE' => TDbStatementClassification::DML, - 'DELETE' => TDbStatementClassification::DML, - 'REPLACE' => TDbStatementClassification::DML, - 'TRUNCATE' => TDbStatementClassification::DML, - 'LOAD' => TDbStatementClassification::DML, - - 'GRANT' => TDbStatementClassification::DCL, - 'REVOKE' => TDbStatementClassification::DCL, - - 'XA' => TDbStatementClassification::TCL, - 'SAVEPOINT' => TDbStatementClassification::TCL, - 'CHECKPOINT' => TDbStatementClassification::TCL, - 'RELEASE SAVEPOINT' => TDbStatementClassification::TCL, - 'START TRANSACTION' => TDbStatementClassification::TCL, - 'BEGIN' => TDbStatementClassification::TCL, - 'COMMIT' => TDbStatementClassification::TCL, - 'ROLLBACK' => TDbStatementClassification::TCL, - 'LOCK' => TDbStatementClassification::TCL, - 'UNLOCK' => TDbStatementClassification::TCL, - 'ABORT' => TDbStatementClassification::TCL, - 'END' => TDbStatementClassification::TCL, - - 'SELECT' => TDbStatementClassification::SQL, - - 'SHOW' => TDbStatementClassification::SQL, - 'DESCRIBE' => TDbStatementClassification::SQL, - 'EXPLAIN' => TDbStatementClassification::SQL, - 'PRAGMA' => TDbStatementClassification::SQL, - - 'SET' => TDbStatementClassification::CONTEXT, - 'USE' => TDbStatementClassification::CONTEXT, - - 'CALL' => TDbStatementClassification::UNKNOWN, - 'EXEC' => TDbStatementClassification::UNKNOWN, - 'PREPARE' => TDbStatementClassification::UNKNOWN, - 'EXECUTE' => TDbStatementClassification::UNKNOWN, - 'DEALLOCATE' => TDbStatementClassification::UNKNOWN, - ); - - /** - * @var array - */ - protected static $cacheClassificationAnalysis = array(); - - /** - * @var string - */ - protected static $regExpClassificationAnalysis = null; - - /** - * @param TDbStatementAnalysisParamete - * @return TDbStatementClassification - */ - public static function doClassificationAnalysis(TDbStatementAnalysisParameter $param) - { - $statement = $param->getStatement(); - $default = $param->getDefaultClassification(); - - $hash = md5($statement . '-' . $default); - - if( isset(self::$cacheClassificationAnalysis[$hash]) ) - return self::$cacheClassificationAnalysis[$hash]; - - self::$cacheClassificationAnalysis[$hash] = $default; - - $statement = preg_replace('/(?:--|\\#)[\x20\\t\\S]*\s+|\/\\*[\x20\\t\\n\\r\\S]*?\\*\//Ssmux', '', $statement); - $statement = preg_replace('/[\s]+/Smu', ' ', $statement); - $statement = trim($statement); - - if(self::$regExpClassificationAnalysis===null) - self::$regExpClassificationAnalysis = '/^(' . str_replace(' ', '\x20', implode('|', array_keys(self::$mappingClassificationAnalysis))) . ')+[\s]+.*|\k1/Siu'; - - $cmd = strToUpper(preg_replace(self::$regExpClassificationAnalysis, '\1', $statement)); - - if( isset(self::$mappingClassificationAnalysis[$cmd]) ) - self::$cacheClassificationAnalysis[$hash] = self::$mappingClassificationAnalysis[$cmd]; - - return self::$cacheClassificationAnalysis[$hash]; - } - - /** - * @param TDbStatementAnalysisParameter - * @return TDbStatementClassification - */ - public function getClassificationAnalysis(TDbStatementAnalysisParameter $param) - { - if( ($drivername = $this->getDriverName())!== null ) - $param->setDriverName($drivername); - - return self::doClassificationAnalysis($param); - } - } -?> \ No newline at end of file -- cgit v1.2.3