Commit 3a1e0f3a by Carsten Brandt

property codestyle framework

parent 5976d1c5
...@@ -303,20 +303,24 @@ class PhpDocController extends Controller ...@@ -303,20 +303,24 @@ class PhpDocController extends Controller
if ($skip) { if ($skip) {
continue; continue;
} }
// check for multi line array
if ($level > 0) { if ($level > 0) {
${'endof'.$property} = $i; ${'endof'.$property} = $i;
$level -= substr_count($line, ']');
} }
if (strncmp(trim($line), 'public $', 8) === 0 || strncmp(trim($line), 'public static $', 15) === 0) { if (strncmp(trim($line), 'public $', 8) === 0 || strncmp(trim($line), 'public static $', 15) === 0) {
$endofPublic = $i; $endofPublic = $i;
$property = 'Public'; $property = 'Public';
$level = 0;
} elseif (strncmp(trim($line), 'protected $', 11) === 0 || strncmp(trim($line), 'protected static $', 18) === 0) { } elseif (strncmp(trim($line), 'protected $', 11) === 0 || strncmp(trim($line), 'protected static $', 18) === 0) {
$endofProtected = $i; $endofProtected = $i;
$property = 'Protected'; $property = 'Protected';
$level = 0;
} elseif (strncmp(trim($line), 'private $', 9) === 0 || strncmp(trim($line), 'private static $', 16) === 0) { } elseif (strncmp(trim($line), 'private $', 9) === 0 || strncmp(trim($line), 'private static $', 16) === 0) {
$endofPrivate = $i; $endofPrivate = $i;
$property = 'Private'; $property = 'Private';
$level = 0;
} elseif (substr(trim($line),0 , 6) === 'const ') { } elseif (substr(trim($line),0 , 6) === 'const ') {
$endofConst = $i; $endofConst = $i;
$property = false; $property = false;
...@@ -328,8 +332,9 @@ class PhpDocController extends Controller ...@@ -328,8 +332,9 @@ class PhpDocController extends Controller
} elseif (ltrim($line)[0] !== '*' && strpos($line, 'function') !== false || trim($line) === '}') { } elseif (ltrim($line)[0] !== '*' && strpos($line, 'function') !== false || trim($line) === '}') {
break; break;
} }
// check for multi line array // check for multi line array
if ($property !== false) { if ($property !== false && strncmp(trim($line), "'SQLSTATE[", 10) !== 0) {
$level += substr_count($line, '[') - substr_count($line, ']'); $level += substr_count($line, '[') - substr_count($line, ']');
} }
} }
......
...@@ -45,6 +45,7 @@ class Action extends Component ...@@ -45,6 +45,7 @@ class Action extends Component
*/ */
public $controller; public $controller;
/** /**
* Constructor. * Constructor.
* *
......
...@@ -32,6 +32,7 @@ class ActionEvent extends Event ...@@ -32,6 +32,7 @@ class ActionEvent extends Event
*/ */
public $isValid = true; public $isValid = true;
/** /**
* Constructor. * Constructor.
* @param Action $action the action associated with this action event. * @param Action $action the action associated with this action event.
......
...@@ -25,6 +25,7 @@ class Behavior extends Object ...@@ -25,6 +25,7 @@ class Behavior extends Object
*/ */
public $owner; public $owner;
/** /**
* Declares event handlers for the [[owner]]'s events. * Declares event handlers for the [[owner]]'s events.
* *
......
...@@ -36,6 +36,7 @@ class Controller extends Component implements ViewContextInterface ...@@ -36,6 +36,7 @@ class Controller extends Component implements ViewContextInterface
* @event ActionEvent an event raised right after executing a controller action. * @event ActionEvent an event raised right after executing a controller action.
*/ */
const EVENT_AFTER_ACTION = 'afterAction'; const EVENT_AFTER_ACTION = 'afterAction';
/** /**
* @var string the ID of this controller. * @var string the ID of this controller.
*/ */
...@@ -61,11 +62,13 @@ class Controller extends Component implements ViewContextInterface ...@@ -61,11 +62,13 @@ class Controller extends Component implements ViewContextInterface
* by [[run()]] when it is called by [[Application]] to run an action. * by [[run()]] when it is called by [[Application]] to run an action.
*/ */
public $action; public $action;
/** /**
* @var View the view object that can be used to render views or view files. * @var View the view object that can be used to render views or view files.
*/ */
private $_view; private $_view;
/** /**
* @param string $id the ID of this controller. * @param string $id the ID of this controller.
* @param Module $module the module that this controller belongs to. * @param Module $module the module that this controller belongs to.
......
...@@ -57,6 +57,7 @@ class DynamicModel extends Model ...@@ -57,6 +57,7 @@ class DynamicModel extends Model
{ {
private $_attributes = []; private $_attributes = [];
/** /**
* Constructors. * Constructors.
* @param array $attributes the dynamic attributes (name-value pairs, or names) being defined * @param array $attributes the dynamic attributes (name-value pairs, or names) being defined
......
...@@ -50,6 +50,7 @@ class Event extends Object ...@@ -50,6 +50,7 @@ class Event extends Object
private static $_events = []; private static $_events = [];
/** /**
* Attaches an event handler to a class-level event. * Attaches an event handler to a class-level event.
* *
......
...@@ -77,6 +77,7 @@ class Formatter extends Component ...@@ -77,6 +77,7 @@ class Formatter extends Component
'decimalSeparator' => null, 'decimalSeparator' => null,
]; ];
/** /**
* Initializes the component. * Initializes the component.
*/ */
......
...@@ -25,6 +25,7 @@ class InlineAction extends Action ...@@ -25,6 +25,7 @@ class InlineAction extends Action
*/ */
public $actionMethod; public $actionMethod;
/** /**
* @param string $id the ID of this action * @param string $id the ID of this action
* @param Controller $controller the controller that owns this action * @param Controller $controller the controller that owns this action
......
...@@ -83,6 +83,7 @@ class Model extends Component implements IteratorAggregate, ArrayAccess, Arrayab ...@@ -83,6 +83,7 @@ class Model extends Component implements IteratorAggregate, ArrayAccess, Arrayab
*/ */
private $_scenario = self::SCENARIO_DEFAULT; private $_scenario = self::SCENARIO_DEFAULT;
/** /**
* Returns the validation rules for attributes. * Returns the validation rules for attributes.
* *
......
...@@ -106,6 +106,7 @@ class Module extends ServiceLocator ...@@ -106,6 +106,7 @@ class Module extends ServiceLocator
* [[Controller::defaultAction]]. * [[Controller::defaultAction]].
*/ */
public $defaultRoute = 'default'; public $defaultRoute = 'default';
/** /**
* @var string the root directory of the module. * @var string the root directory of the module.
*/ */
...@@ -127,6 +128,7 @@ class Module extends ServiceLocator ...@@ -127,6 +128,7 @@ class Module extends ServiceLocator
*/ */
private static $_instances = []; private static $_instances = [];
/** /**
* Constructor. * Constructor.
* @param string $id the ID of this module * @param string $id the ID of this module
......
...@@ -23,6 +23,7 @@ abstract class Request extends Component ...@@ -23,6 +23,7 @@ abstract class Request extends Component
private $_scriptFile; private $_scriptFile;
private $_isConsoleRequest; private $_isConsoleRequest;
/** /**
* Resolves the current request into a route and the associated parameters. * Resolves the current request into a route and the associated parameters.
* @return array the first element is the route, and the second is the associated parameters. * @return array the first element is the route, and the second is the associated parameters.
......
...@@ -21,6 +21,7 @@ class Response extends Component ...@@ -21,6 +21,7 @@ class Response extends Component
*/ */
public $exitStatus = 0; public $exitStatus = 0;
/** /**
* Sends the response to client. * Sends the response to client.
*/ */
......
...@@ -79,6 +79,7 @@ class Theme extends Component ...@@ -79,6 +79,7 @@ class Theme extends Component
*/ */
public $pathMap; public $pathMap;
/** /**
* Initializes the theme. * Initializes the theme.
* @throws InvalidConfigException if [[basePath]] is not set. * @throws InvalidConfigException if [[basePath]] is not set.
......
...@@ -34,7 +34,6 @@ class Widget extends Component implements ViewContextInterface ...@@ -34,7 +34,6 @@ class Widget extends Component implements ViewContextInterface
* @see getId() * @see getId()
*/ */
public static $autoIdPrefix = 'w'; public static $autoIdPrefix = 'w';
/** /**
* @var Widget[] the widgets that are currently being rendered (not ended). This property * @var Widget[] the widgets that are currently being rendered (not ended). This property
* is maintained by [[begin()]] and [[end()]] methods. * is maintained by [[begin()]] and [[end()]] methods.
...@@ -42,6 +41,7 @@ class Widget extends Component implements ViewContextInterface ...@@ -42,6 +41,7 @@ class Widget extends Component implements ViewContextInterface
*/ */
public static $stack = []; public static $stack = [];
/** /**
* Begins a widget. * Begins a widget.
* This method creates an instance of the calling class. It will apply the configuration * This method creates an instance of the calling class. It will apply the configuration
......
...@@ -74,6 +74,7 @@ class AttributeBehavior extends Behavior ...@@ -74,6 +74,7 @@ class AttributeBehavior extends Behavior
*/ */
public $value; public $value;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -75,6 +75,7 @@ class BlameableBehavior extends AttributeBehavior ...@@ -75,6 +75,7 @@ class BlameableBehavior extends AttributeBehavior
*/ */
public $value; public $value;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -73,6 +73,7 @@ class SluggableBehavior extends AttributeBehavior ...@@ -73,6 +73,7 @@ class SluggableBehavior extends AttributeBehavior
*/ */
public $value; public $value;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -32,6 +32,7 @@ class ChainedDependency extends Dependency ...@@ -32,6 +32,7 @@ class ChainedDependency extends Dependency
*/ */
public $dependOnAll = true; public $dependOnAll = true;
/** /**
* Evaluates the dependency by generating and saving the data related with dependency. * Evaluates the dependency by generating and saving the data related with dependency.
* @param Cache $cache the cache component that is currently evaluating this dependency * @param Cache $cache the cache component that is currently evaluating this dependency
......
...@@ -72,6 +72,7 @@ class DbCache extends Cache ...@@ -72,6 +72,7 @@ class DbCache extends Cache
*/ */
public $gcProbability = 100; public $gcProbability = 100;
/** /**
* Initializes the DbCache component. * Initializes the DbCache component.
* This method will initialize the [[db]] property to make sure it refers to a valid DB connection. * This method will initialize the [[db]] property to make sure it refers to a valid DB connection.
......
...@@ -37,6 +37,7 @@ class DbDependency extends Dependency ...@@ -37,6 +37,7 @@ class DbDependency extends Dependency
*/ */
public $params = []; public $params = [];
/** /**
* Generates the data needed to determine if dependency has been changed. * Generates the data needed to determine if dependency has been changed.
* This method returns the value of the global state. * This method returns the value of the global state.
......
...@@ -36,6 +36,7 @@ abstract class Dependency extends \yii\base\Object ...@@ -36,6 +36,7 @@ abstract class Dependency extends \yii\base\Object
*/ */
private static $_reusableData = []; private static $_reusableData = [];
/** /**
* Evaluates the dependency by generating and saving the data related with dependency. * Evaluates the dependency by generating and saving the data related with dependency.
* This method is invoked by cache before writing data into it. * This method is invoked by cache before writing data into it.
......
...@@ -34,6 +34,7 @@ class ExpressionDependency extends Dependency ...@@ -34,6 +34,7 @@ class ExpressionDependency extends Dependency
*/ */
public $params; public $params;
/** /**
* Generates the data needed to determine if dependency has been changed. * Generates the data needed to determine if dependency has been changed.
* This method returns the result of the PHP expression. * This method returns the result of the PHP expression.
......
...@@ -68,6 +68,7 @@ class FileCache extends Cache ...@@ -68,6 +68,7 @@ class FileCache extends Cache
*/ */
public $dirMode = 0775; public $dirMode = 0775;
/** /**
* Initializes this component by ensuring the existence of the cache path. * Initializes this component by ensuring the existence of the cache path.
*/ */
......
...@@ -27,6 +27,7 @@ class FileDependency extends Dependency ...@@ -27,6 +27,7 @@ class FileDependency extends Dependency
*/ */
public $fileName; public $fileName;
/** /**
* Generates the data needed to determine if dependency has been changed. * Generates the data needed to determine if dependency has been changed.
* This method returns the file's last modification time. * This method returns the file's last modification time.
......
...@@ -82,6 +82,7 @@ class MemCache extends Cache ...@@ -82,6 +82,7 @@ class MemCache extends Cache
* @see http://ca2.php.net/manual/en/memcached.setoptions.php * @see http://ca2.php.net/manual/en/memcached.setoptions.php
*/ */
public $options; public $options;
/** /**
* @var \Memcache|\Memcached the Memcache instance * @var \Memcache|\Memcached the Memcache instance
*/ */
......
...@@ -22,6 +22,7 @@ class TagDependency extends Dependency ...@@ -22,6 +22,7 @@ class TagDependency extends Dependency
*/ */
public $tags = []; public $tags = [];
/** /**
* Generates the data needed to determine if dependency has been changed. * Generates the data needed to determine if dependency has been changed.
* This method does nothing in this class. * This method does nothing in this class.
......
...@@ -57,6 +57,7 @@ class Captcha extends InputWidget ...@@ -57,6 +57,7 @@ class Captcha extends InputWidget
*/ */
public $options = ['class' => 'form-control']; public $options = ['class' => 'form-control'];
/** /**
* Initializes the widget. * Initializes the widget.
*/ */
......
...@@ -42,6 +42,7 @@ class CaptchaAction extends Action ...@@ -42,6 +42,7 @@ class CaptchaAction extends Action
* The name of the GET parameter indicating whether the CAPTCHA image should be regenerated. * The name of the GET parameter indicating whether the CAPTCHA image should be regenerated.
*/ */
const REFRESH_GET_VAR = 'refresh'; const REFRESH_GET_VAR = 'refresh';
/** /**
* @var integer how many times should the same CAPTCHA be displayed. Defaults to 3. * @var integer how many times should the same CAPTCHA be displayed. Defaults to 3.
* A value less than or equal to 0 means the test is unlimited (available since version 1.1.2). * A value less than or equal to 0 means the test is unlimited (available since version 1.1.2).
...@@ -98,6 +99,7 @@ class CaptchaAction extends Action ...@@ -98,6 +99,7 @@ class CaptchaAction extends Action
*/ */
public $fixedVerifyCode; public $fixedVerifyCode;
/** /**
* Initializes the action. * Initializes the action.
* @throws InvalidConfigException if the font file does not exist. * @throws InvalidConfigException if the font file does not exist.
......
...@@ -39,6 +39,7 @@ class CaptchaValidator extends Validator ...@@ -39,6 +39,7 @@ class CaptchaValidator extends Validator
*/ */
public $captchaAction = 'site/captcha'; public $captchaAction = 'site/captcha';
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -69,6 +69,7 @@ class Application extends \yii\base\Application ...@@ -69,6 +69,7 @@ class Application extends \yii\base\Application
*/ */
public $controller; public $controller;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -36,13 +36,13 @@ class Controller extends \yii\base\Controller ...@@ -36,13 +36,13 @@ class Controller extends \yii\base\Controller
* @var boolean whether to run the command interactively. * @var boolean whether to run the command interactively.
*/ */
public $interactive = true; public $interactive = true;
/** /**
* @var boolean whether to enable ANSI color in the output. * @var boolean whether to enable ANSI color in the output.
* If not set, ANSI color will only be enabled for terminals that support it. * If not set, ANSI color will only be enabled for terminals that support it.
*/ */
public $color; public $color;
/** /**
* Returns a value indicating whether ANSI color is enabled. * Returns a value indicating whether ANSI color is enabled.
* *
......
...@@ -31,6 +31,7 @@ class Markdown extends \cebe\markdown\Parser ...@@ -31,6 +31,7 @@ class Markdown extends \cebe\markdown\Parser
'_', // underscore '_', // underscore
]; ];
/** /**
* @inheritDoc * @inheritDoc
*/ */
......
...@@ -22,6 +22,7 @@ class Request extends \yii\base\Request ...@@ -22,6 +22,7 @@ class Request extends \yii\base\Request
{ {
private $_params; private $_params;
/** /**
* Returns the command line arguments. * Returns the command line arguments.
* @return array the command line arguments. It does not include the entry script name. * @return array the command line arguments. It does not include the entry script name.
......
...@@ -92,6 +92,7 @@ class AssetController extends Controller ...@@ -92,6 +92,7 @@ class AssetController extends Controller
*/ */
private $_assetManager = []; private $_assetManager = [];
/** /**
* Returns the asset manager instance. * Returns the asset manager instance.
* @throws \yii\console\Exception on invalid configuration. * @throws \yii\console\Exception on invalid configuration.
......
...@@ -41,6 +41,7 @@ abstract class BaseMigrateController extends Controller ...@@ -41,6 +41,7 @@ abstract class BaseMigrateController extends Controller
*/ */
public $templateFile; public $templateFile;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -41,6 +41,7 @@ class MessageController extends Controller ...@@ -41,6 +41,7 @@ class MessageController extends Controller
*/ */
public $defaultAction = 'extract'; public $defaultAction = 'extract';
/** /**
* Creates a configuration file for the "extract" command. * Creates a configuration file for the "extract" command.
* *
......
...@@ -68,6 +68,7 @@ class MigrateController extends BaseMigrateController ...@@ -68,6 +68,7 @@ class MigrateController extends BaseMigrateController
*/ */
public $db = 'db'; public $db = 'db';
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -43,6 +43,7 @@ abstract class BaseDataProvider extends Component implements DataProviderInterfa ...@@ -43,6 +43,7 @@ abstract class BaseDataProvider extends Component implements DataProviderInterfa
private $_models; private $_models;
private $_totalCount; private $_totalCount;
/** /**
* Prepares the data models that will be made available in the current page. * Prepares the data models that will be made available in the current page.
* @return array the available data models * @return array the available data models
......
...@@ -134,12 +134,14 @@ class Pagination extends Object implements Linkable ...@@ -134,12 +134,14 @@ class Pagination extends Object implements Linkable
* the maximal page size. If this is false, it means [[pageSize]] should always return the value of [[defaultPageSize]]. * the maximal page size. If this is false, it means [[pageSize]] should always return the value of [[defaultPageSize]].
*/ */
public $pageSizeLimit = [1, 50]; public $pageSizeLimit = [1, 50];
/** /**
* @var integer number of items on each page. * @var integer number of items on each page.
* If it is less than 1, it means the page size is infinite, and thus a single page contains all items. * If it is less than 1, it means the page size is infinite, and thus a single page contains all items.
*/ */
private $_pageSize; private $_pageSize;
/** /**
* @return integer number of pages * @return integer number of pages
*/ */
......
...@@ -81,7 +81,6 @@ class Sort extends Object ...@@ -81,7 +81,6 @@ class Sort extends Object
* Defaults to false, which means each time the data can only be sorted by one attribute. * Defaults to false, which means each time the data can only be sorted by one attribute.
*/ */
public $enableMultiSort = false; public $enableMultiSort = false;
/** /**
* @var array list of attributes that are allowed to be sorted. Its syntax can be * @var array list of attributes that are allowed to be sorted. Its syntax can be
* described using the following example: * described using the following example:
......
...@@ -82,6 +82,7 @@ class SqlDataProvider extends BaseDataProvider ...@@ -82,6 +82,7 @@ class SqlDataProvider extends BaseDataProvider
*/ */
public $key; public $key;
/** /**
* Initializes the DB connection component. * Initializes the DB connection component.
* This method will initialize the [[db]] property to make sure it refers to a valid DB connection. * This method will initialize the [[db]] property to make sure it refers to a valid DB connection.
......
...@@ -96,6 +96,7 @@ class ActiveRecord extends BaseActiveRecord ...@@ -96,6 +96,7 @@ class ActiveRecord extends BaseActiveRecord
*/ */
const OP_ALL = 0x07; const OP_ALL = 0x07;
/** /**
* Loads default values from database table schema * Loads default values from database table schema
* *
......
...@@ -49,6 +49,7 @@ class BatchQueryResult extends Object implements \Iterator ...@@ -49,6 +49,7 @@ class BatchQueryResult extends Object implements \Iterator
* If false, a whole batch of rows will be returned in each iteration. * If false, a whole batch of rows will be returned in each iteration.
*/ */
public $each = false; public $each = false;
/** /**
* @var DataReader the data reader associated with this batch query. * @var DataReader the data reader associated with this batch query.
*/ */
...@@ -66,6 +67,7 @@ class BatchQueryResult extends Object implements \Iterator ...@@ -66,6 +67,7 @@ class BatchQueryResult extends Object implements \Iterator
*/ */
private $_key; private $_key;
/** /**
* Destructor. * Destructor.
*/ */
......
...@@ -78,6 +78,7 @@ class ColumnSchema extends Object ...@@ -78,6 +78,7 @@ class ColumnSchema extends Object
*/ */
public $comment; public $comment;
/** /**
* Converts the input value according to [[phpType]] after retrieval from the database. * Converts the input value according to [[phpType]] after retrieval from the database.
* If the value is null or an [[Expression]], it will not be converted. * If the value is null or an [[Expression]], it will not be converted.
......
...@@ -58,6 +58,7 @@ class DataReader extends \yii\base\Object implements \Iterator, \Countable ...@@ -58,6 +58,7 @@ class DataReader extends \yii\base\Object implements \Iterator, \Countable
private $_row; private $_row;
private $_index = -1; private $_index = -1;
/** /**
* Constructor. * Constructor.
* @param Command $command the command generating the query result * @param Command $command the command generating the query result
......
...@@ -21,6 +21,7 @@ class Exception extends \yii\base\Exception ...@@ -21,6 +21,7 @@ class Exception extends \yii\base\Exception
*/ */
public $errorInfo = []; public $errorInfo = [];
/** /**
* Constructor. * Constructor.
* @param string $message PDO error message * @param string $message PDO error message
......
...@@ -36,6 +36,7 @@ class Expression extends \yii\base\Object ...@@ -36,6 +36,7 @@ class Expression extends \yii\base\Object
*/ */
public $params = []; public $params = [];
/** /**
* Constructor. * Constructor.
* @param string $expression the DB expression * @param string $expression the DB expression
......
...@@ -44,6 +44,7 @@ class Migration extends Component implements MigrationInterface ...@@ -44,6 +44,7 @@ class Migration extends Component implements MigrationInterface
*/ */
public $db = 'db'; public $db = 'db';
/** /**
* Initializes the migration. * Initializes the migration.
* This method will set [[db]] to be the 'db' application component, if it is null. * This method will set [[db]] to be the 'db' application component, if it is null.
......
...@@ -41,6 +41,7 @@ class QueryBuilder extends \yii\base\Object ...@@ -41,6 +41,7 @@ class QueryBuilder extends \yii\base\Object
* Child classes should override this property to declare supported type mappings. * Child classes should override this property to declare supported type mappings.
*/ */
public $typeMap = []; public $typeMap = [];
/** /**
* @var array map of query condition to builder methods. * @var array map of query condition to builder methods.
* These methods are used by [[buildCondition]] to build SQL conditions from array syntax. * These methods are used by [[buildCondition]] to build SQL conditions from array syntax.
......
...@@ -64,6 +64,14 @@ abstract class Schema extends Object ...@@ -64,6 +64,14 @@ abstract class Schema extends Object
*/ */
public $defaultSchema; public $defaultSchema;
/** /**
* @var array map of DB errors and corresponding exceptions
* If left part is found in DB error message exception class from the right part is used.
*/
public $exceptionMap = [
'SQLSTATE[23' => 'yii\db\IntegrityException',
];
/**
* @var array list of ALL table names in the database * @var array list of ALL table names in the database
*/ */
private $_tableNames = []; private $_tableNames = [];
...@@ -76,13 +84,6 @@ abstract class Schema extends Object ...@@ -76,13 +84,6 @@ abstract class Schema extends Object
*/ */
private $_builder; private $_builder;
/**
* @var array map of DB errors and corresponding exceptions
* If left part is found in DB error message exception class from the right part is used.
*/
public $exceptionMap = [
'SQLSTATE[23' => 'yii\db\IntegrityException',
];
/** /**
* Loads the metadata for the specified table. * Loads the metadata for the specified table.
......
...@@ -59,6 +59,7 @@ class TableSchema extends Object ...@@ -59,6 +59,7 @@ class TableSchema extends Object
*/ */
public $columns = []; public $columns = [];
/** /**
* Gets the named column metadata. * Gets the named column metadata.
* This is a convenient method for retrieving a named column even if it does not exist. * This is a convenient method for retrieving a named column even if it does not exist.
......
...@@ -67,6 +67,7 @@ class Transaction extends \yii\base\Object ...@@ -67,6 +67,7 @@ class Transaction extends \yii\base\Object
* @var Connection the database connection that this transaction is associated with. * @var Connection the database connection that this transaction is associated with.
*/ */
public $db; public $db;
/** /**
* @var integer the nesting level of the transaction. 0 means the outermost level. * @var integer the nesting level of the transaction. 0 means the outermost level.
*/ */
......
...@@ -39,6 +39,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -39,6 +39,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
Schema::TYPE_MONEY => 'decimal(19,4)', Schema::TYPE_MONEY => 'decimal(19,4)',
]; ];
/** /**
* Creates a SQL statement for resetting 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
......
...@@ -64,7 +64,6 @@ class Schema extends \yii\db\Schema ...@@ -64,7 +64,6 @@ class Schema extends \yii\db\Schema
'sequence' => self::TYPE_STRING, 'sequence' => self::TYPE_STRING,
'enum' => self::TYPE_STRING, 'enum' => self::TYPE_STRING,
]; ];
/** /**
* @var array map of DB errors and corresponding exceptions * @var array map of DB errors and corresponding exceptions
* If left part is found in DB error message exception class from the right part is used. * If left part is found in DB error message exception class from the right part is used.
...@@ -73,6 +72,7 @@ class Schema extends \yii\db\Schema ...@@ -73,6 +72,7 @@ class Schema extends \yii\db\Schema
'Operation would have caused one or more unique constraint violations' => 'yii\db\IntegrityException', 'Operation would have caused one or more unique constraint violations' => 'yii\db\IntegrityException',
]; ];
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -17,8 +17,6 @@ use yii\base\InvalidParamException; ...@@ -17,8 +17,6 @@ use yii\base\InvalidParamException;
*/ */
class QueryBuilder extends \yii\db\QueryBuilder class QueryBuilder extends \yii\db\QueryBuilder
{ {
protected $_oldMssql;
/** /**
* @var array mapping from abstract column types (keys) to physical column types (values). * @var array mapping from abstract column types (keys) to physical column types (values).
*/ */
...@@ -233,7 +231,12 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -233,7 +231,12 @@ class QueryBuilder extends \yii\db\QueryBuilder
} }
/** /**
* @return boolean if MSSQL used is old * @var boolean whether MSSQL used is old.
*/
private $_oldMssql;
/**
* @return boolean whether MSSQL used is old.
* @throws \yii\base\InvalidConfigException * @throws \yii\base\InvalidConfigException
* @throws \yii\db\Exception * @throws \yii\db\Exception
*/ */
......
...@@ -35,11 +35,9 @@ class Schema extends \yii\db\Schema ...@@ -35,11 +35,9 @@ class Schema extends \yii\db\Schema
'int' => self::TYPE_INTEGER, 'int' => self::TYPE_INTEGER,
'tinyint' => self::TYPE_SMALLINT, 'tinyint' => self::TYPE_SMALLINT,
'money' => self::TYPE_MONEY, 'money' => self::TYPE_MONEY,
// approximate numbers // approximate numbers
'float' => self::TYPE_FLOAT, 'float' => self::TYPE_FLOAT,
'real' => self::TYPE_FLOAT, 'real' => self::TYPE_FLOAT,
// date and time // date and time
'date' => self::TYPE_DATE, 'date' => self::TYPE_DATE,
'datetimeoffset' => self::TYPE_DATETIME, 'datetimeoffset' => self::TYPE_DATETIME,
...@@ -47,22 +45,18 @@ class Schema extends \yii\db\Schema ...@@ -47,22 +45,18 @@ class Schema extends \yii\db\Schema
'smalldatetime' => self::TYPE_DATETIME, 'smalldatetime' => self::TYPE_DATETIME,
'datetime' => self::TYPE_DATETIME, 'datetime' => self::TYPE_DATETIME,
'time' => self::TYPE_TIME, 'time' => self::TYPE_TIME,
// character strings // character strings
'char' => self::TYPE_STRING, 'char' => self::TYPE_STRING,
'varchar' => self::TYPE_STRING, 'varchar' => self::TYPE_STRING,
'text' => self::TYPE_TEXT, 'text' => self::TYPE_TEXT,
// unicode character strings // unicode character strings
'nchar' => self::TYPE_STRING, 'nchar' => self::TYPE_STRING,
'nvarchar' => self::TYPE_STRING, 'nvarchar' => self::TYPE_STRING,
'ntext' => self::TYPE_TEXT, 'ntext' => self::TYPE_TEXT,
// binary strings // binary strings
'binary' => self::TYPE_BINARY, 'binary' => self::TYPE_BINARY,
'varbinary' => self::TYPE_BINARY, 'varbinary' => self::TYPE_BINARY,
'image' => self::TYPE_BINARY, 'image' => self::TYPE_BINARY,
// other data types // other data types
// 'cursor' type cannot be used with tables // 'cursor' type cannot be used with tables
'timestamp' => self::TYPE_TIMESTAMP, 'timestamp' => self::TYPE_TIMESTAMP,
...@@ -73,6 +67,7 @@ class Schema extends \yii\db\Schema ...@@ -73,6 +67,7 @@ class Schema extends \yii\db\Schema
'table' => self::TYPE_STRING, 'table' => self::TYPE_STRING,
]; ];
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -40,6 +40,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -40,6 +40,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
Schema::TYPE_MONEY => 'decimal(19,4)', Schema::TYPE_MONEY => 'decimal(19,4)',
]; ];
/** /**
* Builds a SQL statement for renaming a column. * Builds a SQL statement for renaming a column.
* @param string $table the table whose column is to be renamed. The name will be properly quoted by the method. * @param string $table the table whose column is to be renamed. The name will be properly quoted by the method.
......
...@@ -52,6 +52,7 @@ class Schema extends \yii\db\Schema ...@@ -52,6 +52,7 @@ class Schema extends \yii\db\Schema
'enum' => self::TYPE_STRING, 'enum' => self::TYPE_STRING,
]; ];
/** /**
* Quotes a table name for use in a query. * Quotes a table name for use in a query.
* A simple table name has no schema prefix. * A simple table name has no schema prefix.
......
...@@ -42,6 +42,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -42,6 +42,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
private $_sql; private $_sql;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -38,6 +38,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -38,6 +38,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
Schema::TYPE_BOOLEAN => 'boolean', Schema::TYPE_BOOLEAN => 'boolean',
Schema::TYPE_MONEY => 'numeric(19,4)', Schema::TYPE_MONEY => 'numeric(19,4)',
]; ];
/** /**
* @var array map of query condition to builder methods. * @var array map of query condition to builder methods.
* These methods are used by [[buildCondition]] to build SQL conditions from array syntax. * These methods are used by [[buildCondition]] to build SQL conditions from array syntax.
......
...@@ -107,6 +107,7 @@ class Schema extends \yii\db\Schema ...@@ -107,6 +107,7 @@ class Schema extends \yii\db\Schema
'xml' => self::TYPE_STRING 'xml' => self::TYPE_STRING
]; ];
/** /**
* Creates a query builder for the PostgreSQL database. * Creates a query builder for the PostgreSQL database.
* @return QueryBuilder query builder instance * @return QueryBuilder query builder instance
......
...@@ -58,6 +58,7 @@ class Schema extends \yii\db\Schema ...@@ -58,6 +58,7 @@ class Schema extends \yii\db\Schema
'enum' => self::TYPE_STRING, 'enum' => self::TYPE_STRING,
]; ];
/** /**
* Quotes a table name for use in a query. * Quotes a table name for use in a query.
* A simple table name has no schema prefix. * A simple table name has no schema prefix.
......
...@@ -57,6 +57,7 @@ class Instance ...@@ -57,6 +57,7 @@ class Instance
*/ */
public $id; public $id;
/** /**
* Constructor. * Constructor.
* @param string $id the component ID * @param string $id the component ID
......
...@@ -58,6 +58,7 @@ class ServiceLocator extends Component ...@@ -58,6 +58,7 @@ class ServiceLocator extends Component
*/ */
private $_definitions = []; private $_definitions = [];
/** /**
* Getter magic method. * Getter magic method.
* This method is overridden to support accessing components like reading properties. * This method is overridden to support accessing components like reading properties.
......
...@@ -90,6 +90,7 @@ class AccessRule extends Component ...@@ -90,6 +90,7 @@ class AccessRule extends Component
*/ */
public $denyCallback; public $denyCallback;
/** /**
* Checks whether the Web user is allowed to perform the specified action. * Checks whether the Web user is allowed to perform the specified action.
* @param Action $action the action to be performed * @param Action $action the action to be performed
......
...@@ -82,6 +82,7 @@ class Cors extends ActionFilter ...@@ -82,6 +82,7 @@ class Cors extends ActionFilter
'Access-Control-Max-Age' => 86400, 'Access-Control-Max-Age' => 86400,
]; ];
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -70,6 +70,7 @@ class VerbFilter extends Behavior ...@@ -70,6 +70,7 @@ class VerbFilter extends Behavior
*/ */
public $actions = []; public $actions = [];
/** /**
* Declares event handlers for the [[owner]]'s events. * Declares event handlers for the [[owner]]'s events.
* @return array events (array keys) and the corresponding event handler methods (array values). * @return array events (array keys) and the corresponding event handler methods (array values).
......
...@@ -36,6 +36,7 @@ class HttpBearerAuth extends AuthMethod ...@@ -36,6 +36,7 @@ class HttpBearerAuth extends AuthMethod
*/ */
public $realm = 'api'; public $realm = 'api';
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -23,6 +23,7 @@ class QueryParamAuth extends AuthMethod ...@@ -23,6 +23,7 @@ class QueryParamAuth extends AuthMethod
*/ */
public $tokenParam = 'access-token'; public $tokenParam = 'access-token';
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -53,6 +53,7 @@ class CheckboxColumn extends Column ...@@ -53,6 +53,7 @@ class CheckboxColumn extends Column
*/ */
public $multiple = true; public $multiple = true;
/** /**
* @inheritdoc * @inheritdoc
* @throws \yii\base\InvalidConfigException if [[name]] is not set. * @throws \yii\base\InvalidConfigException if [[name]] is not set.
......
...@@ -191,7 +191,6 @@ class GridView extends BaseListView ...@@ -191,7 +191,6 @@ class GridView extends BaseListView
* This is mainly used by [[Html::error()]] when rendering an error message next to every filter input field. * This is mainly used by [[Html::error()]] when rendering an error message next to every filter input field.
*/ */
public $filterErrorOptions = ['class' => 'help-block']; public $filterErrorOptions = ['class' => 'help-block'];
/** /**
* @var string the layout that determines how different sections of the list view should be organized. * @var string the layout that determines how different sections of the list view should be organized.
* The following tokens will be replaced with the corresponding section contents: * The following tokens will be replaced with the corresponding section contents:
...@@ -204,6 +203,7 @@ class GridView extends BaseListView ...@@ -204,6 +203,7 @@ class GridView extends BaseListView
*/ */
public $layout = "{summary}\n{items}\n{pager}"; public $layout = "{summary}\n{items}\n{pager}";
/** /**
* Initializes the grid view. * Initializes the grid view.
* This method will initialize required property values and instantiate [[columns]] objects. * This method will initialize required property values and instantiate [[columns]] objects.
......
...@@ -29,6 +29,7 @@ class SerialColumn extends Column ...@@ -29,6 +29,7 @@ class SerialColumn extends Column
{ {
public $header = '#'; public $header = '#';
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -27,6 +27,7 @@ class BaseFileHelper ...@@ -27,6 +27,7 @@ class BaseFileHelper
const PATTERN_MUSTBEDIR = 8; const PATTERN_MUSTBEDIR = 8;
const PATTERN_NEGATIVE = 16; const PATTERN_NEGATIVE = 16;
/** /**
* Normalizes a file/directory path. * Normalizes a file/directory path.
* The normalization does the following work: * The normalization does the following work:
......
...@@ -80,6 +80,7 @@ class BaseHtml ...@@ -80,6 +80,7 @@ class BaseHtml
'media', 'media',
]; ];
/** /**
* Encodes special characters into HTML entities. * Encodes special characters into HTML entities.
* The [[\yii\base\Application::charset|application charset]] will be used for encoding. * The [[\yii\base\Application::charset|application charset]] will be used for encoding.
......
...@@ -216,7 +216,6 @@ class BaseInflector ...@@ -216,7 +216,6 @@ class BaseInflector
'wildebeest' => 'wildebeest', 'wildebeest' => 'wildebeest',
'Yengeese' => 'Yengeese', 'Yengeese' => 'Yengeese',
]; ];
/** /**
* @var array fallback map for transliteration used by [[slug()]] when intl isn't available. * @var array fallback map for transliteration used by [[slug()]] when intl isn't available.
*/ */
...@@ -233,6 +232,7 @@ class BaseInflector ...@@ -233,6 +232,7 @@ class BaseInflector
'ÿ' => 'y', 'ÿ' => 'y',
]; ];
/** /**
* Converts a word to its plural form. * Converts a word to its plural form.
* Note that this is for English only! * Note that this is for English only!
......
...@@ -45,6 +45,7 @@ class BaseMarkdown ...@@ -45,6 +45,7 @@ class BaseMarkdown
*/ */
public static $defaultFlavor = 'original'; public static $defaultFlavor = 'original';
/** /**
* Converts markdown into HTML. * Converts markdown into HTML.
* *
......
...@@ -21,6 +21,7 @@ class BaseVarDumper ...@@ -21,6 +21,7 @@ class BaseVarDumper
private static $_output; private static $_output;
private static $_depth; private static $_depth;
/** /**
* Displays a variable. * Displays a variable.
* This method achieves the similar functionality as var_dump and print_r * This method achieves the similar functionality as var_dump and print_r
......
...@@ -85,6 +85,7 @@ class DbMessageSource extends MessageSource ...@@ -85,6 +85,7 @@ class DbMessageSource extends MessageSource
*/ */
public $enableCaching = false; public $enableCaching = false;
/** /**
* Initializes the DbMessageSource component. * Initializes the DbMessageSource component.
* This method will initialize the [[db]] property to make sure it refers to a valid DB connection. * This method will initialize the [[db]] property to make sure it refers to a valid DB connection.
......
...@@ -79,6 +79,7 @@ class Formatter extends \yii\base\Formatter ...@@ -79,6 +79,7 @@ class Formatter extends \yii\base\Formatter
*/ */
public $currencyCode; public $currencyCode;
/** /**
* Initializes the component. * Initializes the component.
* This method will check if the "intl" PHP extension is installed and set the * This method will check if the "intl" PHP extension is installed and set the
......
...@@ -48,6 +48,7 @@ class GettextMessageSource extends MessageSource ...@@ -48,6 +48,7 @@ class GettextMessageSource extends MessageSource
*/ */
public $useBigEndian = false; public $useBigEndian = false;
/** /**
* Loads the message translation for the specified language and category. * Loads the message translation for the specified language and category.
* If translation for specific locale code such as `en-US` isn't found it * If translation for specific locale code such as `en-US` isn't found it
......
...@@ -48,6 +48,7 @@ class GettextMoFile extends GettextFile ...@@ -48,6 +48,7 @@ class GettextMoFile extends GettextFile
*/ */
public $useBigEndian = false; public $useBigEndian = false;
/** /**
* Loads messages from an MO file. * Loads messages from an MO file.
* @param string $filePath file path * @param string $filePath file path
......
...@@ -48,6 +48,7 @@ class I18N extends Component ...@@ -48,6 +48,7 @@ class I18N extends Component
*/ */
public $translations; public $translations;
/** /**
* Initializes the component by configuring the default message categories. * Initializes the component by configuring the default message categories.
*/ */
......
...@@ -47,6 +47,7 @@ class MessageFormatter extends Component ...@@ -47,6 +47,7 @@ class MessageFormatter extends Component
private $_errorCode = 0; private $_errorCode = 0;
private $_errorMessage = ''; private $_errorMessage = '';
/** /**
* Get the error code from the last operation * Get the error code from the last operation
* @link http://php.net/manual/en/messageformatter.geterrorcode.php * @link http://php.net/manual/en/messageformatter.geterrorcode.php
......
...@@ -40,6 +40,7 @@ class MessageSource extends Component ...@@ -40,6 +40,7 @@ class MessageSource extends Component
private $_messages = []; private $_messages = [];
/** /**
* Initializes this component. * Initializes this component.
*/ */
......
...@@ -51,6 +51,7 @@ class PhpMessageSource extends MessageSource ...@@ -51,6 +51,7 @@ class PhpMessageSource extends MessageSource
*/ */
public $fileMap; public $fileMap;
/** /**
* Loads the message translation for the specified language and category. * Loads the message translation for the specified language and category.
* If translation for specific locale code such as `en-US` isn't found it * If translation for specific locale code such as `en-US` isn't found it
......
...@@ -74,7 +74,6 @@ class Logger extends Component ...@@ -74,7 +74,6 @@ class Logger extends Component
*/ */
const LEVEL_PROFILE_END = 0x60; const LEVEL_PROFILE_END = 0x60;
/** /**
* @var array logged messages. This property is managed by [[log()]] and [[flush()]]. * @var array logged messages. This property is managed by [[log()]] and [[flush()]].
* Each log message is of the following structure: * Each log message is of the following structure:
......
...@@ -22,7 +22,6 @@ class SyslogTarget extends Target ...@@ -22,7 +22,6 @@ class SyslogTarget extends Target
* @var string syslog identity * @var string syslog identity
*/ */
public $identity; public $identity;
/** /**
* @var integer syslog facility. * @var integer syslog facility.
*/ */
......
...@@ -39,6 +39,7 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont ...@@ -39,6 +39,7 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont
* @event MailEvent an event raised right after send. * @event MailEvent an event raised right after send.
*/ */
const EVENT_AFTER_SEND = 'afterSend'; const EVENT_AFTER_SEND = 'afterSend';
/** /**
* @var string|boolean HTML layout view name. This is the layout used to render HTML mail body. * @var string|boolean HTML layout view name. This is the layout used to render HTML mail body.
* The property can take the following values: * The property can take the following values:
...@@ -105,6 +106,7 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont ...@@ -105,6 +106,7 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont
*/ */
private $_viewPath; private $_viewPath;
/** /**
* @param array|View $view view instance or its array configuration that will be used to * @param array|View $view view instance or its array configuration that will be used to
* render message bodies. * render message bodies.
......
...@@ -29,6 +29,7 @@ abstract class DbMutex extends Mutex ...@@ -29,6 +29,7 @@ abstract class DbMutex extends Mutex
*/ */
public $db = 'db'; public $db = 'db';
/** /**
* Initializes generic database table based mutex implementation. * Initializes generic database table based mutex implementation.
* @throws InvalidConfigException if [[db]] is invalid. * @throws InvalidConfigException if [[db]] is invalid.
......
...@@ -58,11 +58,13 @@ class FileMutex extends Mutex ...@@ -58,11 +58,13 @@ class FileMutex extends Mutex
* but read-only for other users. * but read-only for other users.
*/ */
public $dirMode = 0775; public $dirMode = 0775;
/** /**
* @var resource[] stores all opened lock files. Keys are lock names and values are file handles. * @var resource[] stores all opened lock files. Keys are lock names and values are file handles.
*/ */
private $_files = []; private $_files = [];
/** /**
* Initializes mutex component implementation dedicated for UNIX, GNU/Linux, Mac OS X, and other UNIX-like * Initializes mutex component implementation dedicated for UNIX, GNU/Linux, Mac OS X, and other UNIX-like
* operating systems. * operating systems.
......
...@@ -38,11 +38,13 @@ abstract class Mutex extends Component ...@@ -38,11 +38,13 @@ abstract class Mutex extends Component
* acquire in this process must be released in any case (regardless any kind of errors or exceptions). * acquire in this process must be released in any case (regardless any kind of errors or exceptions).
*/ */
public $autoRelease = true; public $autoRelease = true;
/** /**
* @var string[] names of the locks acquired in the current PHP process. * @var string[] names of the locks acquired in the current PHP process.
*/ */
private $_locks = []; private $_locks = [];
/** /**
* Initializes the mutex component. * Initializes the mutex component.
*/ */
......
...@@ -24,6 +24,7 @@ abstract class BaseManager extends Component implements ManagerInterface ...@@ -24,6 +24,7 @@ abstract class BaseManager extends Component implements ManagerInterface
*/ */
public $defaultRoles = []; public $defaultRoles = [];
/** /**
* Returns the named auth item. * Returns the named auth item.
* @param string $name the auth item name. * @param string $name the auth item name.
......
...@@ -30,6 +30,7 @@ abstract class Rule extends Object ...@@ -30,6 +30,7 @@ abstract class Rule extends Object
*/ */
public $updatedAt; public $updatedAt;
/** /**
* Executes the rule. * Executes the rule.
* *
......
...@@ -56,6 +56,7 @@ class Action extends \yii\base\Action ...@@ -56,6 +56,7 @@ class Action extends \yii\base\Action
*/ */
public $checkAccess; public $checkAccess;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -52,6 +52,7 @@ class ActiveController extends Controller ...@@ -52,6 +52,7 @@ class ActiveController extends Controller
*/ */
public $createScenario = Model::SCENARIO_DEFAULT; public $createScenario = Model::SCENARIO_DEFAULT;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
...@@ -28,6 +28,7 @@ class CreateAction extends Action ...@@ -28,6 +28,7 @@ class CreateAction extends Action
*/ */
public $viewAction = 'view'; public $viewAction = 'view';
/** /**
* Creates a new model. * Creates a new model.
* @return \yii\db\ActiveRecordInterface the model newly created * @return \yii\db\ActiveRecordInterface the model newly created
......
...@@ -31,6 +31,7 @@ class IndexAction extends Action ...@@ -31,6 +31,7 @@ class IndexAction extends Action
*/ */
public $prepareDataProvider; public $prepareDataProvider;
/** /**
* @return ActiveDataProvider * @return ActiveDataProvider
*/ */
......
...@@ -26,6 +26,7 @@ class OptionsAction extends \yii\base\Action ...@@ -26,6 +26,7 @@ class OptionsAction extends \yii\base\Action
*/ */
public $resourceOptions = ['GET', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS']; public $resourceOptions = ['GET', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];
/** /**
* Responds to the OPTIONS request. * Responds to the OPTIONS request.
* @param string $id * @param string $id
......
...@@ -98,6 +98,7 @@ class Serializer extends Component ...@@ -98,6 +98,7 @@ class Serializer extends Component
*/ */
public $response; public $response;
/** /**
* @inheritdoc * @inheritdoc
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment