1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-04 13:17:58 +02:00

DibiObject replaced with trait DibiStrict

This commit is contained in:
David Grudl
2015-10-06 12:54:27 +02:00
parent 76396ab250
commit f42d1b1611
39 changed files with 116 additions and 39 deletions

View File

@@ -13,8 +13,10 @@ use Nette\Diagnostics\Debugger;
* *
* @package dibi\nette * @package dibi\nette
*/ */
class DibiNettePanel extends DibiObject implements Nette\Diagnostics\IBarPanel class DibiNettePanel implements Nette\Diagnostics\IBarPanel
{ {
use DibiStrict;
/** @var int maximum SQL length */ /** @var int maximum SQL length */
static public $maxLength = 1000; static public $maxLength = 1000;

View File

@@ -16,8 +16,10 @@ use DibiHelpers;
* Dibi panel for Tracy. * Dibi panel for Tracy.
* @package dibi\nette * @package dibi\nette
*/ */
class Panel extends \DibiObject implements Tracy\IBarPanel class Panel implements Tracy\IBarPanel
{ {
use \DibiStrict;
/** @var int maximum SQL length */ /** @var int maximum SQL length */
static public $maxLength = 1000; static public $maxLength = 1000;

View File

@@ -14,8 +14,10 @@
* @property-read int $affectedRows * @property-read int $affectedRows
* @property-read int $insertId * @property-read int $insertId
*/ */
class DibiConnection extends DibiObject class DibiConnection
{ {
use DibiStrict;
/** @var array of function (DibiEvent $event); Occurs after query is executed */ /** @var array of function (DibiEvent $event); Occurs after query is executed */
public $onEvent; public $onEvent;

View File

@@ -11,8 +11,10 @@
* *
* @package dibi * @package dibi
*/ */
class DibiDataSource extends DibiObject implements IDataSource class DibiDataSource implements IDataSource
{ {
use DibiStrict;
/** @var DibiConnection */ /** @var DibiConnection */
private $connection; private $connection;

View File

@@ -13,6 +13,7 @@
*/ */
class DibiDateTime extends DateTime class DibiDateTime extends DateTime
{ {
use DibiStrict;
public function __construct($time = 'now', DateTimeZone $timezone = NULL) public function __construct($time = 'now', DateTimeZone $timezone = NULL)
{ {

View File

@@ -20,8 +20,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultDriver, IDibiReflector class DibiFirebirdDriver implements IDibiDriver, IDibiResultDriver, IDibiReflector
{ {
use DibiStrict;
const ERROR_EXCEPTION_THROWN = -836; const ERROR_EXCEPTION_THROWN = -836;
/** @var resource Connection resource */ /** @var resource Connection resource */

View File

@@ -21,8 +21,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResultDriver class DibiMsSql2005Driver implements IDibiDriver, IDibiResultDriver
{ {
use DibiStrict;
/** @var resource Connection resource */ /** @var resource Connection resource */
private $connection; private $connection;

View File

@@ -12,8 +12,10 @@
* @package dibi\drivers * @package dibi\drivers
* @internal * @internal
*/ */
class DibiMsSql2005Reflector extends DibiObject implements IDibiReflector class DibiMsSql2005Reflector implements IDibiReflector
{ {
use DibiStrict;
/** @var IDibiDriver */ /** @var IDibiDriver */
private $driver; private $driver;

View File

@@ -20,8 +20,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriver class DibiMsSqlDriver implements IDibiDriver, IDibiResultDriver
{ {
use DibiStrict;
/** @var resource Connection resource */ /** @var resource Connection resource */
private $connection; private $connection;

View File

@@ -12,8 +12,10 @@
* @package dibi\drivers * @package dibi\drivers
* @internal * @internal
*/ */
class DibiMsSqlReflector extends DibiObject implements IDibiReflector class DibiMsSqlReflector implements IDibiReflector
{ {
use DibiStrict;
/** @var IDibiDriver */ /** @var IDibiDriver */
private $driver; private $driver;

View File

@@ -26,8 +26,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriver class DibiMySqlDriver implements IDibiDriver, IDibiResultDriver
{ {
use DibiStrict;
const ERROR_ACCESS_DENIED = 1045; const ERROR_ACCESS_DENIED = 1045;
const ERROR_DUPLICATE_ENTRY = 1062; const ERROR_DUPLICATE_ENTRY = 1062;
const ERROR_DATA_TRUNCATED = 1265; const ERROR_DATA_TRUNCATED = 1265;

View File

@@ -12,8 +12,10 @@
* @package dibi\drivers * @package dibi\drivers
* @internal * @internal
*/ */
class DibiMySqlReflector extends DibiObject implements IDibiReflector class DibiMySqlReflector implements IDibiReflector
{ {
use DibiStrict;
/** @var IDibiDriver */ /** @var IDibiDriver */
private $driver; private $driver;

View File

@@ -27,8 +27,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDriver class DibiMySqliDriver implements IDibiDriver, IDibiResultDriver
{ {
use DibiStrict;
const ERROR_ACCESS_DENIED = 1045; const ERROR_ACCESS_DENIED = 1045;
const ERROR_DUPLICATE_ENTRY = 1062; const ERROR_DUPLICATE_ENTRY = 1062;
const ERROR_DATA_TRUNCATED = 1265; const ERROR_DATA_TRUNCATED = 1265;

View File

@@ -19,8 +19,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDriver, IDibiReflector class DibiOdbcDriver implements IDibiDriver, IDibiResultDriver, IDibiReflector
{ {
use DibiStrict;
/** @var resource Connection resource */ /** @var resource Connection resource */
private $connection; private $connection;

View File

@@ -23,8 +23,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDriver, IDibiReflector class DibiOracleDriver implements IDibiDriver, IDibiResultDriver, IDibiReflector
{ {
use DibiStrict;
/** @var resource Connection resource */ /** @var resource Connection resource */
private $connection; private $connection;

View File

@@ -20,8 +20,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiPdoDriver extends DibiObject implements IDibiDriver, IDibiResultDriver class DibiPdoDriver implements IDibiDriver, IDibiResultDriver
{ {
use DibiStrict;
/** @var PDO Connection resource */ /** @var PDO Connection resource */
private $connection; private $connection;

View File

@@ -20,8 +20,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDriver, IDibiReflector class DibiPostgreDriver implements IDibiDriver, IDibiResultDriver, IDibiReflector
{ {
use DibiStrict;
/** @var resource Connection resource */ /** @var resource Connection resource */
private $connection; private $connection;

View File

@@ -20,8 +20,10 @@
* *
* @package dibi\drivers * @package dibi\drivers
*/ */
class DibiSqlite3Driver extends DibiObject implements IDibiDriver, IDibiResultDriver class DibiSqlite3Driver implements IDibiDriver, IDibiResultDriver
{ {
use DibiStrict;
/** @var SQLite3 Connection resource */ /** @var SQLite3 Connection resource */
private $connection; private $connection;

View File

@@ -12,8 +12,10 @@
* @package dibi\drivers * @package dibi\drivers
* @internal * @internal
*/ */
class DibiSqliteReflector extends DibiObject implements IDibiReflector class DibiSqliteReflector implements IDibiReflector
{ {
use DibiStrict;
/** @var IDibiDriver */ /** @var IDibiDriver */
private $driver; private $driver;

View File

@@ -13,6 +13,8 @@
*/ */
class DibiEvent class DibiEvent
{ {
use DibiStrict;
/** event type */ /** event type */
const CONNECT = 1, const CONNECT = 1,
SELECT = 4, SELECT = 4,

View File

@@ -23,8 +23,10 @@
* @method DibiFluent leftJoin($table) * @method DibiFluent leftJoin($table)
* @method DibiFluent on($cond) * @method DibiFluent on($cond)
*/ */
class DibiFluent extends DibiObject implements IDataSource class DibiFluent implements IDataSource
{ {
use DibiStrict;
const REMOVE = FALSE; const REMOVE = FALSE;
/** @var array */ /** @var array */

View File

@@ -11,6 +11,7 @@
*/ */
class DibiHelpers class DibiHelpers
{ {
use DibiStrict;
/** /**
* Prints out a syntax highlighted version of the SQL command or DibiResult. * Prints out a syntax highlighted version of the SQL command or DibiResult.

View File

@@ -11,8 +11,10 @@
* *
* @package dibi * @package dibi
*/ */
class DibiLiteral extends DibiObject class DibiLiteral
{ {
use DibiStrict;
/** @var string */ /** @var string */
private $value; private $value;

View File

@@ -11,8 +11,10 @@
* *
* @package dibi * @package dibi
*/ */
class DibiFileLogger extends DibiObject class DibiFileLogger
{ {
use DibiStrict;
/** @var string Name of the file where SQL errors should be logged */ /** @var string Name of the file where SQL errors should be logged */
public $file; public $file;

View File

@@ -11,8 +11,10 @@
* *
* @package dibi * @package dibi
*/ */
class DibiFirePhpLogger extends DibiObject class DibiFirePhpLogger
{ {
use DibiStrict;
/** maximum number of rows */ /** maximum number of rows */
static public $maxQueries = 30; static public $maxQueries = 30;

View File

@@ -22,8 +22,10 @@
* @property-read bool $autoIncrement * @property-read bool $autoIncrement
* @property-read mixed $default * @property-read mixed $default
*/ */
class DibiColumnInfo extends DibiObject class DibiColumnInfo
{ {
use DibiStrict;
/** @var array */ /** @var array */
private static $types; private static $types;

View File

@@ -15,8 +15,10 @@
* @property-read array $tables * @property-read array $tables
* @property-read array $tableNames * @property-read array $tableNames
*/ */
class DibiDatabaseInfo extends DibiObject class DibiDatabaseInfo
{ {
use DibiStrict;
/** @var IDibiReflector */ /** @var IDibiReflector */
private $reflector; private $reflector;

View File

@@ -15,8 +15,10 @@
* @property-read string $name * @property-read string $name
* @property-read array $references * @property-read array $references
*/ */
class DibiForeignKeyInfo extends DibiObject class DibiForeignKeyInfo
{ {
use DibiStrict;
/** @var string */ /** @var string */
private $name; private $name;

View File

@@ -16,8 +16,10 @@
* @property-read bool $unique * @property-read bool $unique
* @property-read bool $primary * @property-read bool $primary
*/ */
class DibiIndexInfo extends DibiObject class DibiIndexInfo
{ {
use DibiStrict;
/** @var array (name, columns, [unique], [primary]) */ /** @var array (name, columns, [unique], [primary]) */
private $info; private $info;

View File

@@ -14,8 +14,10 @@
* @property-read array $columns * @property-read array $columns
* @property-read array $columnNames * @property-read array $columnNames
*/ */
class DibiResultInfo extends DibiObject class DibiResultInfo
{ {
use DibiStrict;
/** @var IDibiResultDriver */ /** @var IDibiResultDriver */
private $driver; private $driver;

View File

@@ -19,8 +19,10 @@
* @property-read array $indexes * @property-read array $indexes
* @property-read DibiIndexInfo $primaryKey * @property-read DibiIndexInfo $primaryKey
*/ */
class DibiTableInfo extends DibiObject class DibiTableInfo
{ {
use DibiStrict;
/** @var IDibiReflector */ /** @var IDibiReflector */
private $reflector; private $reflector;

View File

@@ -26,8 +26,10 @@
* *
* @property-read int $rowCount * @property-read int $rowCount
*/ */
class DibiResult extends DibiObject implements IDataSource class DibiResult implements IDataSource
{ {
use DibiStrict;
/** @var array IDibiResultDriver */ /** @var array IDibiResultDriver */
private $driver; private $driver;

View File

@@ -22,6 +22,8 @@
*/ */
class DibiResultIterator implements Iterator, Countable class DibiResultIterator implements Iterator, Countable
{ {
use DibiStrict;
/** @var DibiResult */ /** @var DibiResult */
private $result; private $result;

View File

@@ -7,10 +7,10 @@
/** /**
* Object is the ultimate ancestor of all instantiable classes. * Better OOP experience.
* @package dibi * @package dibi
*/ */
abstract class DibiObject trait DibiStrict
{ {
/** @var array [method => [type => callback]] */ /** @var array [method => [type => callback]] */
private static $extMethods; private static $extMethods;

View File

@@ -11,8 +11,10 @@
* *
* @package dibi * @package dibi
*/ */
final class DibiTranslator extends DibiObject final class DibiTranslator
{ {
use DibiStrict;
/** @var DibiConnection */ /** @var DibiConnection */
private $connection; private $connection;

View File

@@ -14,6 +14,8 @@
*/ */
class dibi class dibi
{ {
use DibiStrict;
const const
AFFECTED_ROWS = 'a', AFFECTED_ROWS = 'a',
IDENTIFIER = 'n'; IDENTIFIER = 'n';

View File

@@ -13,6 +13,8 @@
*/ */
class DibiException extends Exception class DibiException extends Exception
{ {
use DibiStrict;
/** @var string */ /** @var string */
private $sql; private $sql;
@@ -116,6 +118,8 @@ class DibiDriverException extends DibiException
*/ */
class DibiPcreException extends Exception class DibiPcreException extends Exception
{ {
use DibiStrict;
public function __construct($message = '%msg.') public function __construct($message = '%msg.')
{ {
static $messages = [ static $messages = [

View File

@@ -46,7 +46,7 @@ spl_autoload_register(function ($class) {
'DibiNettePanel' => 'Bridges/Nette/Panel.php', 'DibiNettePanel' => 'Bridges/Nette/Panel.php',
'DibiNotImplementedException' => 'exceptions.php', 'DibiNotImplementedException' => 'exceptions.php',
'DibiNotSupportedException' => 'exceptions.php', 'DibiNotSupportedException' => 'exceptions.php',
'DibiObject' => 'Object.php', 'DibiStrict' => 'Strict.php',
'DibiOdbcDriver' => 'Drivers/OdbcDriver.php', 'DibiOdbcDriver' => 'Drivers/OdbcDriver.php',
'DibiOracleDriver' => 'Drivers/OracleDriver.php', 'DibiOracleDriver' => 'Drivers/OracleDriver.php',
'DibiPcreException' => 'exceptions.php', 'DibiPcreException' => 'exceptions.php',

View File

@@ -5,12 +5,9 @@ use Tester\Assert;
require __DIR__ . '/bootstrap.php'; require __DIR__ . '/bootstrap.php';
class TestClass extends DibiObject class TestClass
{ {
public function callParent() use DibiStrict;
{
parent::callParent();
}
public function getBar() public function getBar()
{ {
@@ -23,6 +20,14 @@ class TestClass extends DibiObject
} }
} }
class TestChild extends TestClass
{
public function callParent()
{
parent::callParent();
}
}
// calling // calling
Assert::exception(function () { Assert::exception(function () {
@@ -35,7 +40,7 @@ Assert::exception(function () {
}, 'LogicException', 'Call to undefined static method TestClass::undeclared().'); }, 'LogicException', 'Call to undefined static method TestClass::undeclared().');
Assert::exception(function () { Assert::exception(function () {
$obj = new TestClass; $obj = new TestChild;
$obj->callParent(); $obj->callParent();
}, 'LogicException', 'Call to undefined method parent::callParent().'); }, 'LogicException', 'Call to undefined method parent::callParent().');