mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 14:26:54 +08:00
DB cleanup.
This commit is contained in:
@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use yii\base\Exception;
|
use yii\base\Exception;
|
||||||
|
use yii\base\InvalidCallException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the application start timestamp.
|
* Gets the application start timestamp.
|
||||||
@ -345,7 +346,7 @@ class YiiBase
|
|||||||
* @param string|array $config the configuration. It can be either a string representing the class name
|
* @param string|array $config the configuration. It can be either a string representing the class name
|
||||||
* or an array representing the object configuration.
|
* or an array representing the object configuration.
|
||||||
* @return mixed the created object
|
* @return mixed the created object
|
||||||
* @throws \yii\base\BadConfigException if the configuration is invalid.
|
* @throws InvalidConfigException if the configuration is invalid.
|
||||||
*/
|
*/
|
||||||
public static function createObject($config)
|
public static function createObject($config)
|
||||||
{
|
{
|
||||||
@ -358,7 +359,7 @@ class YiiBase
|
|||||||
$class = $config['class'];
|
$class = $config['class'];
|
||||||
unset($config['class']);
|
unset($config['class']);
|
||||||
} else {
|
} else {
|
||||||
throw new \yii\base\BadConfigException('Object configuration must be an array containing a "class" element.');
|
throw new InvalidCallException('Object configuration must be an array containing a "class" element.');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!class_exists($class, false)) {
|
if (!class_exists($class, false)) {
|
||||||
|
@ -312,7 +312,7 @@ class Model extends Component implements \IteratorAggregate, \ArrayAccess
|
|||||||
* Creates validator objects based on the validation rules specified in [[rules()]].
|
* Creates validator objects based on the validation rules specified in [[rules()]].
|
||||||
* Unlike [[getValidators()]], each time this method is called, a new list of validators will be returned.
|
* Unlike [[getValidators()]], each time this method is called, a new list of validators will be returned.
|
||||||
* @return Vector validators
|
* @return Vector validators
|
||||||
* @throws BadConfigException if any validation rule configuration is invalid
|
* @throws InvalidConfigException if any validation rule configuration is invalid
|
||||||
*/
|
*/
|
||||||
public function createValidators()
|
public function createValidators()
|
||||||
{
|
{
|
||||||
@ -324,7 +324,7 @@ class Model extends Component implements \IteratorAggregate, \ArrayAccess
|
|||||||
$validator = Validator::createValidator($rule[1], $this, $rule[0], array_slice($rule, 2));
|
$validator = Validator::createValidator($rule[1], $this, $rule[0], array_slice($rule, 2));
|
||||||
$validators->add($validator);
|
$validators->add($validator);
|
||||||
} else {
|
} else {
|
||||||
throw new BadConfigException('Invalid validation rule: a rule must specify both attribute names and validator type.');
|
throw new InvalidConfigException('Invalid validation rule: a rule must specify both attribute names and validator type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $validators;
|
return $validators;
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
namespace yii\base;
|
namespace yii\base;
|
||||||
|
|
||||||
|
use yii\base\InvalidConfigException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Theme represents an application theme.
|
* Theme represents an application theme.
|
||||||
*
|
*
|
||||||
@ -25,12 +27,12 @@ class Theme extends ApplicationComponent
|
|||||||
if ($this->basePath !== null) {
|
if ($this->basePath !== null) {
|
||||||
$this->basePath = \Yii::getAlias($this->basePath, true);
|
$this->basePath = \Yii::getAlias($this->basePath, true);
|
||||||
} else {
|
} else {
|
||||||
throw new BadConfigException("Theme.basePath must be set.");
|
throw new InvalidConfigException("Theme.basePath must be set.");
|
||||||
}
|
}
|
||||||
if ($this->baseUrl !== null) {
|
if ($this->baseUrl !== null) {
|
||||||
$this->baseUrl = \Yii::getAlias($this->baseUrl, true);
|
$this->baseUrl = \Yii::getAlias($this->baseUrl, true);
|
||||||
} else {
|
} else {
|
||||||
throw new BadConfigException("Theme.baseUrl must be set.");
|
throw new InvalidConfigException("Theme.baseUrl must be set.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
namespace yii\db;
|
namespace yii\db;
|
||||||
|
|
||||||
|
use yii\base\NotSupportedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Command represents a SQL statement to be executed against a database.
|
* Command represents a SQL statement to be executed against a database.
|
||||||
*
|
*
|
||||||
@ -259,6 +261,7 @@ class Command extends \yii\base\Component
|
|||||||
public function execute($params = array())
|
public function execute($params = array())
|
||||||
{
|
{
|
||||||
$sql = $this->getSql();
|
$sql = $this->getSql();
|
||||||
|
|
||||||
$this->_params = array_merge($this->_params, $params);
|
$this->_params = array_merge($this->_params, $params);
|
||||||
if ($this->_params === array()) {
|
if ($this->_params === array()) {
|
||||||
$paramLog = '';
|
$paramLog = '';
|
||||||
@ -268,6 +271,10 @@ class Command extends \yii\base\Component
|
|||||||
|
|
||||||
\Yii::trace("Executing SQL: {$sql}{$paramLog}", __CLASS__);
|
\Yii::trace("Executing SQL: {$sql}{$paramLog}", __CLASS__);
|
||||||
|
|
||||||
|
if ($sql == '') {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ($this->connection->enableProfiling) {
|
if ($this->connection->enableProfiling) {
|
||||||
\Yii::beginProfile(__METHOD__ . "($sql)", __CLASS__);
|
\Yii::beginProfile(__METHOD__ . "($sql)", __CLASS__);
|
||||||
@ -707,4 +714,34 @@ class Command extends \yii\base\Component
|
|||||||
$sql = $this->connection->getQueryBuilder()->dropIndex($name, $table);
|
$sql = $this->connection->getQueryBuilder()->dropIndex($name, $table);
|
||||||
return $this->setSql($sql);
|
return $this->setSql($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a SQL command for resetting the sequence value of a table's primary key.
|
||||||
|
* The sequence will be reset such that the primary key of the next new row inserted
|
||||||
|
* will have the specified value or 1.
|
||||||
|
* @param string $table the name of the table whose primary key sequence will be reset
|
||||||
|
* @param mixed $value the value for the primary key of the next new row inserted. If this is not set,
|
||||||
|
* the next new row's primary key will have a value 1.
|
||||||
|
* @return Command the command object itself
|
||||||
|
* @throws NotSupportedException if this is not supported by the underlying DBMS
|
||||||
|
*/
|
||||||
|
public function resetSequence($table, $value = null)
|
||||||
|
{
|
||||||
|
$sql = $this->connection->getQueryBuilder()->resetSequence($table, $value);
|
||||||
|
return $this->setSql($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds a SQL command for enabling or disabling integrity check.
|
||||||
|
* @param boolean $check whether to turn on or off the integrity check.
|
||||||
|
* @param string $schema the schema name of the tables. Defaults to empty string, meaning the current
|
||||||
|
* or default schema.
|
||||||
|
* @return Command the command object itself
|
||||||
|
* @throws NotSupportedException if this is not supported by the underlying DBMS
|
||||||
|
*/
|
||||||
|
public function checkIntegrity($check = true, $schema = '')
|
||||||
|
{
|
||||||
|
$sql = $this->connection->getQueryBuilder()->checkIntegrity($check, $schema);
|
||||||
|
return $this->setSql($sql);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
|
|
||||||
namespace yii\db;
|
namespace yii\db;
|
||||||
|
|
||||||
use yii\base\BadConfigException;
|
use yii\base\InvalidConfigException;
|
||||||
|
use yii\base\NotSupportedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connection represents a connection to a database via [PDO](http://www.php.net/manual/en/ref.pdo.php).
|
* Connection represents a connection to a database via [PDO](http://www.php.net/manual/en/ref.pdo.php).
|
||||||
@ -317,7 +318,7 @@ class Connection extends \yii\base\ApplicationComponent
|
|||||||
{
|
{
|
||||||
if ($this->pdo === null) {
|
if ($this->pdo === null) {
|
||||||
if (empty($this->dsn)) {
|
if (empty($this->dsn)) {
|
||||||
throw new BadConfigException('Connection.dsn cannot be empty.');
|
throw new InvalidConfigException('Connection.dsn cannot be empty.');
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
\Yii::trace('Opening DB connection: ' . $this->dsn, __CLASS__);
|
\Yii::trace('Opening DB connection: ' . $this->dsn, __CLASS__);
|
||||||
@ -426,7 +427,7 @@ class Connection extends \yii\base\ApplicationComponent
|
|||||||
/**
|
/**
|
||||||
* Returns the schema information for the database opened by this connection.
|
* Returns the schema information for the database opened by this connection.
|
||||||
* @return Schema the schema information for the database opened by this connection.
|
* @return Schema the schema information for the database opened by this connection.
|
||||||
* @throws BadConfigException if there is no support for the current driver type
|
* @throws NotSupportedException if there is no support for the current driver type
|
||||||
*/
|
*/
|
||||||
public function getSchema()
|
public function getSchema()
|
||||||
{
|
{
|
||||||
@ -439,7 +440,7 @@ class Connection extends \yii\base\ApplicationComponent
|
|||||||
$this->_schema->connection = $this;
|
$this->_schema->connection = $this;
|
||||||
return $this->_schema;
|
return $this->_schema;
|
||||||
} else {
|
} else {
|
||||||
throw new BadConfigException("Connection does not support reading schema information for '$driver' DBMS.");
|
throw new NotSupportedException("Connection does not support reading schema information for '$driver' DBMS.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
namespace yii\db;
|
namespace yii\db;
|
||||||
|
|
||||||
use yii\db\Exception;
|
use yii\db\Exception;
|
||||||
|
use yii\base\NotSupportedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QueryBuilder builds a SELECT SQL statement based on the specification given as a [[Query]] object.
|
* QueryBuilder builds a SELECT SQL statement based on the specification given as a [[Query]] object.
|
||||||
@ -385,24 +386,30 @@ class QueryBuilder extends \yii\base\Object
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resets the sequence value of a table's primary key.
|
* Creates a SQL statement for resetting the sequence value of a table's primary key.
|
||||||
* The sequence will be reset such that the primary key of the next new row inserted
|
* The sequence will be reset such that the primary key of the next new row inserted
|
||||||
* will have the specified value or 1.
|
* will have the specified value or 1.
|
||||||
* @param string $table the table schema whose primary key sequence will be reset
|
* @param string $table the name of the table whose primary key sequence will be reset
|
||||||
* @param mixed $value the value for the primary key of the next new row inserted. If this is not set,
|
* @param mixed $value the value for the primary key of the next new row inserted. If this is not set,
|
||||||
* the next new row's primary key will have a value 1.
|
* the next new row's primary key will have a value 1.
|
||||||
|
* @return string the SQL statement for resetting sequence
|
||||||
|
* @throws NotSupportedException if this is not supported by the underlying DBMS
|
||||||
*/
|
*/
|
||||||
public function resetSequence($table, $value = null)
|
public function resetSequence($table, $value = null)
|
||||||
{
|
{
|
||||||
|
throw new NotSupportedException($this->connection->getDriverName() . ' does not support resetting sequence.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables or disables integrity check.
|
* Builds a SQL statement for enabling or disabling integrity check.
|
||||||
* @param boolean $check whether to turn on or off the integrity check.
|
* @param boolean $check whether to turn on or off the integrity check.
|
||||||
* @param string $schema the schema of the tables. Defaults to empty string, meaning the current or default schema.
|
* @param string $schema the schema of the tables. Defaults to empty string, meaning the current or default schema.
|
||||||
|
* @return string the SQL statement for checking integrity
|
||||||
|
* @throws NotSupportedException if this is not supported by the underlying DBMS
|
||||||
*/
|
*/
|
||||||
public function checkIntegrity($check = true, $schema = '')
|
public function checkIntegrity($check = true, $schema = '')
|
||||||
{
|
{
|
||||||
|
throw new NotSupportedException($this->connection->getDriverName() . ' does not support enabling/disabling integrity check.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,10 +59,6 @@ class TableSchema extends \yii\base\Object
|
|||||||
* @var ColumnSchema[] column metadata of this table. Each array element is a [[ColumnSchema]] object, indexed by column names.
|
* @var ColumnSchema[] column metadata of this table. Each array element is a [[ColumnSchema]] object, indexed by column names.
|
||||||
*/
|
*/
|
||||||
public $columns = array();
|
public $columns = array();
|
||||||
/**
|
|
||||||
* @var string comment of this table
|
|
||||||
*/
|
|
||||||
public $comment;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the named column metadata.
|
* Gets the named column metadata.
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace yii\db;
|
namespace yii\db;
|
||||||
|
|
||||||
use yii\base\BadConfigException;
|
use yii\base\InvalidConfigException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transaction represents a DB transaction.
|
* Transaction represents a DB transaction.
|
||||||
@ -60,13 +60,13 @@ class Transaction extends \yii\base\Object
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Begins a transaction.
|
* Begins a transaction.
|
||||||
* @throws BadConfigException if [[connection]] is null
|
* @throws InvalidConfigException if [[connection]] is null
|
||||||
*/
|
*/
|
||||||
public function begin()
|
public function begin()
|
||||||
{
|
{
|
||||||
if (!$this->_active) {
|
if (!$this->_active) {
|
||||||
if ($this->connection === null) {
|
if ($this->connection === null) {
|
||||||
throw new BadConfigException('Transaction.connection must be set.');
|
throw new InvalidConfigException('Transaction.connection must be set.');
|
||||||
}
|
}
|
||||||
\Yii::trace('Starting transaction', __CLASS__);
|
\Yii::trace('Starting transaction', __CLASS__);
|
||||||
$this->connection->open();
|
$this->connection->open();
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
namespace yii\db\mysql;
|
namespace yii\db\mysql;
|
||||||
|
|
||||||
use yii\db\Exception;
|
use yii\db\Exception;
|
||||||
|
use yii\base\InvalidCallException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QueryBuilder is the query builder for MySQL databases.
|
* QueryBuilder is the query builder for MySQL databases.
|
||||||
@ -88,4 +89,44 @@ class QueryBuilder extends \yii\db\QueryBuilder
|
|||||||
return 'ALTER TABLE ' . $this->connection->quoteTableName($table)
|
return 'ALTER TABLE ' . $this->connection->quoteTableName($table)
|
||||||
. ' DROP FOREIGN KEY ' . $this->connection->quoteColumnName($name);
|
. ' DROP FOREIGN KEY ' . $this->connection->quoteColumnName($name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a SQL statement for resetting the sequence value of a table's primary key.
|
||||||
|
* The sequence will be reset such that the primary key of the next new row inserted
|
||||||
|
* will have the specified value or 1.
|
||||||
|
* @param string $tableName the name of the table whose primary key sequence will be reset
|
||||||
|
* @param mixed $value the value for the primary key of the next new row inserted. If this is not set,
|
||||||
|
* the next new row's primary key will have a value 1.
|
||||||
|
* @return string the SQL statement for resetting sequence
|
||||||
|
* @throws InvalidCallException if the table does not exist or there is no sequence associated with the table.
|
||||||
|
*/
|
||||||
|
public function resetSequence($tableName, $value = null)
|
||||||
|
{
|
||||||
|
$table = $this->connection->getTableSchema($tableName);
|
||||||
|
if ($table !== null && $table->sequenceName !== null) {
|
||||||
|
$tableName = $this->connection->quoteTableName($tableName);
|
||||||
|
if ($value === null) {
|
||||||
|
$key = reset($table->primaryKey);
|
||||||
|
$value = $this->connection->createCommand("SELECT MAX(`$key`) FROM $tableName")->queryScalar() + 1;
|
||||||
|
} else {
|
||||||
|
$value = (int)$value;
|
||||||
|
}
|
||||||
|
return "ALTER TABLE $tableName AUTO_INCREMENT=$value";
|
||||||
|
} elseif ($table === null) {
|
||||||
|
throw new InvalidCallException("Table not found: $tableName");
|
||||||
|
} else {
|
||||||
|
throw new InvalidCallException("There is not sequence associated with table '$tableName'.'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds a SQL statement for enabling or disabling integrity check.
|
||||||
|
* @param boolean $check whether to turn on or off the integrity check.
|
||||||
|
* @param string $schema the schema of the tables. Defaults to empty string, meaning the current or default schema.
|
||||||
|
* @return string the SQL statement for checking integrity
|
||||||
|
*/
|
||||||
|
public function checkIntegrity($check = true, $schema = '')
|
||||||
|
{
|
||||||
|
return 'SET FOREIGN_KEY_CHECKS=' . ($check ? 1 : 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ class Schema extends \yii\db\Schema
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Resolves the table name and schema name (if any).
|
* Resolves the table name and schema name (if any).
|
||||||
* @param \yii\db\TableSchema $table the table metadata object
|
* @param TableSchema $table the table metadata object
|
||||||
* @param string $name the table name
|
* @param string $name the table name
|
||||||
*/
|
*/
|
||||||
protected function resolveTableNames($table, $name)
|
protected function resolveTableNames($table, $name)
|
||||||
@ -129,6 +129,8 @@ class Schema extends \yii\db\Schema
|
|||||||
$column->allowNull = $info['Null'] === 'YES';
|
$column->allowNull = $info['Null'] === 'YES';
|
||||||
$column->isPrimaryKey = strpos($info['Key'], 'PRI') !== false;
|
$column->isPrimaryKey = strpos($info['Key'], 'PRI') !== false;
|
||||||
$column->autoIncrement = stripos($info['Extra'], 'auto_increment') !== false;
|
$column->autoIncrement = stripos($info['Extra'], 'auto_increment') !== false;
|
||||||
|
$column->comment = $info['Comment'];
|
||||||
|
|
||||||
|
|
||||||
$column->dbType = $info['Type'];
|
$column->dbType = $info['Type'];
|
||||||
$column->unsigned = strpos($column->dbType, 'unsigned') !== false;
|
$column->unsigned = strpos($column->dbType, 'unsigned') !== false;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace yii\web;
|
namespace yii\web;
|
||||||
|
|
||||||
use \yii\base\BadConfigException;
|
use \yii\base\InvalidConfigException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||||
@ -357,7 +357,7 @@ class Request extends \yii\base\Request
|
|||||||
* Returns the relative URL of the entry script.
|
* Returns the relative URL of the entry script.
|
||||||
* The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
|
* The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
|
||||||
* @return string the relative URL of the entry script.
|
* @return string the relative URL of the entry script.
|
||||||
* @throws BadConfigException if unable to determine the entry script URL
|
* @throws InvalidConfigException if unable to determine the entry script URL
|
||||||
*/
|
*/
|
||||||
public function getScriptUrl()
|
public function getScriptUrl()
|
||||||
{
|
{
|
||||||
@ -374,7 +374,7 @@ class Request extends \yii\base\Request
|
|||||||
} elseif (isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) {
|
} elseif (isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) {
|
||||||
$this->_scriptUrl = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME']));
|
$this->_scriptUrl = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME']));
|
||||||
} else {
|
} else {
|
||||||
throw new BadConfigException('Unable to determine the entry script URL.');
|
throw new InvalidConfigException('Unable to determine the entry script URL.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $this->_scriptUrl;
|
return $this->_scriptUrl;
|
||||||
@ -399,7 +399,7 @@ class Request extends \yii\base\Request
|
|||||||
* The starting and ending slashes are both removed.
|
* The starting and ending slashes are both removed.
|
||||||
* @return string part of the request URL that is after the entry script and before the question mark.
|
* @return string part of the request URL that is after the entry script and before the question mark.
|
||||||
* Note, the returned path info is decoded.
|
* Note, the returned path info is decoded.
|
||||||
* @throws BadConfigException if the path info cannot be determined due to unexpected server configuration
|
* @throws InvalidConfigException if the path info cannot be determined due to unexpected server configuration
|
||||||
*/
|
*/
|
||||||
public function getPathInfo()
|
public function getPathInfo()
|
||||||
{
|
{
|
||||||
@ -415,7 +415,7 @@ class Request extends \yii\base\Request
|
|||||||
* The starting and ending slashes are both removed.
|
* The starting and ending slashes are both removed.
|
||||||
* @return string part of the request URL that is after the entry script and before the question mark.
|
* @return string part of the request URL that is after the entry script and before the question mark.
|
||||||
* Note, the returned path info is decoded.
|
* Note, the returned path info is decoded.
|
||||||
* @throws BadConfigException if the path info cannot be determined due to unexpected server configuration
|
* @throws InvalidConfigException if the path info cannot be determined due to unexpected server configuration
|
||||||
*/
|
*/
|
||||||
protected function resolvePathInfo()
|
protected function resolvePathInfo()
|
||||||
{
|
{
|
||||||
@ -479,7 +479,7 @@ class Request extends \yii\base\Request
|
|||||||
* The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
|
* The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
|
||||||
* @return string the request URI portion for the currently requested URL.
|
* @return string the request URI portion for the currently requested URL.
|
||||||
* Note that the URI returned is URL-encoded.
|
* Note that the URI returned is URL-encoded.
|
||||||
* @throws BadConfigException if the request URI cannot be determined due to unusual server configuration
|
* @throws InvalidConfigException if the request URI cannot be determined due to unusual server configuration
|
||||||
*/
|
*/
|
||||||
public function getRequestUri()
|
public function getRequestUri()
|
||||||
{
|
{
|
||||||
@ -496,7 +496,7 @@ class Request extends \yii\base\Request
|
|||||||
* The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
|
* The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
|
||||||
* @return string|boolean the request URI portion for the currently requested URL.
|
* @return string|boolean the request URI portion for the currently requested URL.
|
||||||
* Note that the URI returned is URL-encoded.
|
* Note that the URI returned is URL-encoded.
|
||||||
* @throws BadConfigException if the request URI cannot be determined due to unusual server configuration
|
* @throws InvalidConfigException if the request URI cannot be determined due to unusual server configuration
|
||||||
*/
|
*/
|
||||||
protected function resolveRequestUri()
|
protected function resolveRequestUri()
|
||||||
{
|
{
|
||||||
@ -517,7 +517,7 @@ class Request extends \yii\base\Request
|
|||||||
$requestUri .= '?' . $_SERVER['QUERY_STRING'];
|
$requestUri .= '?' . $_SERVER['QUERY_STRING'];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new BadConfigException('Unable to determine the request URI.');
|
throw new InvalidConfigException('Unable to determine the request URI.');
|
||||||
}
|
}
|
||||||
return $requestUri;
|
return $requestUri;
|
||||||
}
|
}
|
||||||
@ -599,7 +599,7 @@ class Request extends \yii\base\Request
|
|||||||
/**
|
/**
|
||||||
* Returns entry script file path.
|
* Returns entry script file path.
|
||||||
* @return string entry script file path (processed w/ realpath())
|
* @return string entry script file path (processed w/ realpath())
|
||||||
* @throws BadConfigException if the entry script file path cannot be determined automatically.
|
* @throws InvalidConfigException if the entry script file path cannot be determined automatically.
|
||||||
*/
|
*/
|
||||||
public function getScriptFile()
|
public function getScriptFile()
|
||||||
{
|
{
|
||||||
@ -615,13 +615,13 @@ class Request extends \yii\base\Request
|
|||||||
* However, in some server configuration, this may not be correct or feasible.
|
* However, in some server configuration, this may not be correct or feasible.
|
||||||
* This setter is provided so that the entry script file path can be manually specified.
|
* This setter is provided so that the entry script file path can be manually specified.
|
||||||
* @param string $value the entry script file path
|
* @param string $value the entry script file path
|
||||||
* @throws BadConfigException if the provided entry script file path is invalid.
|
* @throws InvalidConfigException if the provided entry script file path is invalid.
|
||||||
*/
|
*/
|
||||||
public function setScriptFile($value)
|
public function setScriptFile($value)
|
||||||
{
|
{
|
||||||
$this->_scriptFile = realpath($value);
|
$this->_scriptFile = realpath($value);
|
||||||
if ($this->_scriptFile === false || !is_file($this->_scriptFile)) {
|
if ($this->_scriptFile === false || !is_file($this->_scriptFile)) {
|
||||||
throw new BadConfigException('Unable to determine the entry script file path.');
|
throw new InvalidConfigException('Unable to determine the entry script file path.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user