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:
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
{
|
{
|
||||||
|
@@ -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 */
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
*/
|
*/
|
||||||
class DibiEvent
|
class DibiEvent
|
||||||
{
|
{
|
||||||
|
use DibiStrict;
|
||||||
|
|
||||||
/** event type */
|
/** event type */
|
||||||
const CONNECT = 1,
|
const CONNECT = 1,
|
||||||
SELECT = 4,
|
SELECT = 4,
|
||||||
|
@@ -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 */
|
||||||
|
@@ -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.
|
||||||
|
@@ -11,8 +11,10 @@
|
|||||||
*
|
*
|
||||||
* @package dibi
|
* @package dibi
|
||||||
*/
|
*/
|
||||||
class DibiLiteral extends DibiObject
|
class DibiLiteral
|
||||||
{
|
{
|
||||||
|
use DibiStrict;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $value;
|
private $value;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -22,6 +22,8 @@
|
|||||||
*/
|
*/
|
||||||
class DibiResultIterator implements Iterator, Countable
|
class DibiResultIterator implements Iterator, Countable
|
||||||
{
|
{
|
||||||
|
use DibiStrict;
|
||||||
|
|
||||||
/** @var DibiResult */
|
/** @var DibiResult */
|
||||||
private $result;
|
private $result;
|
||||||
|
|
||||||
|
@@ -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;
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -14,6 +14,8 @@
|
|||||||
*/
|
*/
|
||||||
class dibi
|
class dibi
|
||||||
{
|
{
|
||||||
|
use DibiStrict;
|
||||||
|
|
||||||
const
|
const
|
||||||
AFFECTED_ROWS = 'a',
|
AFFECTED_ROWS = 'a',
|
||||||
IDENTIFIER = 'n';
|
IDENTIFIER = 'n';
|
||||||
|
@@ -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 = [
|
||||||
|
@@ -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',
|
||||||
|
@@ -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().');
|
||||||
|
|
Reference in New Issue
Block a user