mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-12 03:30:12 +08:00
w
This commit is contained in:
@@ -20,10 +20,6 @@ namespace yii\base;
|
|||||||
*/
|
*/
|
||||||
abstract class Module extends Component
|
abstract class Module extends Component
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* @var string the ID of this module. This should follow the same rule as naming PHP variables.
|
|
||||||
*/
|
|
||||||
public $id;
|
|
||||||
/**
|
/**
|
||||||
* @var array custom module parameters (name => value).
|
* @var array custom module parameters (name => value).
|
||||||
*/
|
*/
|
||||||
@@ -39,6 +35,7 @@ abstract class Module extends Component
|
|||||||
*/
|
*/
|
||||||
public $behaviors = array();
|
public $behaviors = array();
|
||||||
|
|
||||||
|
private $_id;
|
||||||
private $_parentModule;
|
private $_parentModule;
|
||||||
private $_basePath;
|
private $_basePath;
|
||||||
private $_modulePath;
|
private $_modulePath;
|
||||||
@@ -89,10 +86,12 @@ abstract class Module extends Component
|
|||||||
*/
|
*/
|
||||||
public function __get($name)
|
public function __get($name)
|
||||||
{
|
{
|
||||||
if ($this->hasComponent($name))
|
if ($this->hasComponent($name)) {
|
||||||
return $this->getComponent($name);
|
return $this->getComponent($name);
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
return parent::__get($name);
|
return parent::__get($name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -104,10 +103,43 @@ abstract class Module extends Component
|
|||||||
*/
|
*/
|
||||||
public function __isset($name)
|
public function __isset($name)
|
||||||
{
|
{
|
||||||
if ($this->hasComponent($name))
|
if ($this->hasComponent($name)) {
|
||||||
return $this->getComponent($name) !== null;
|
return $this->getComponent($name) !== null;
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
return parent::__isset($name);
|
return parent::__isset($name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of behaviors that this model should behave as.
|
||||||
|
* The return value of this method should be an array of behavior configurations
|
||||||
|
* indexed by behavior names. For more details, please refer to [[Model::behaviors]].
|
||||||
|
*
|
||||||
|
* The declared behaviors will be attached to the module when [[init]] is called.
|
||||||
|
* @return array the behavior configurations.
|
||||||
|
*/
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the module ID.
|
||||||
|
* @return string the module ID.
|
||||||
|
*/
|
||||||
|
public function getId()
|
||||||
|
{
|
||||||
|
return $this->_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the module ID.
|
||||||
|
* @param string $id the module ID
|
||||||
|
*/
|
||||||
|
public function setId($id)
|
||||||
|
{
|
||||||
|
$this->_id=$id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -175,27 +207,24 @@ abstract class Module extends Component
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines the root aliases.
|
* Defines path aliases.
|
||||||
* @param array $mappings list of aliases to be defined. The array keys are root aliases,
|
* This method calls [[\Yii::setPathOfAlias]] to register the path aliases.
|
||||||
* while the array values are paths or aliases corresponding to the root aliases.
|
* This method is provided so that you can define path aliases by module configuration.
|
||||||
|
* @param array $aliases list of path aliases to be defined. The array keys are alias names
|
||||||
|
* (must start with '@') while the array values are the corresponding paths or aliases.
|
||||||
* For example,
|
* For example,
|
||||||
* <pre>
|
*
|
||||||
|
* ~~~
|
||||||
* array(
|
* array(
|
||||||
* 'models'=>'application.models', // an existing alias
|
* '@models' => '@app/models', // an existing alias
|
||||||
* 'extensions'=>'application.extensions', // an existing alias
|
* '@backend' => __DIR__ . '/../backend', // a directory
|
||||||
* 'backend'=>dirname(__FILE__).'/../backend', // a directory
|
|
||||||
* )
|
* )
|
||||||
* </pre>
|
* ~~~
|
||||||
* @since 1.0.5
|
|
||||||
*/
|
*/
|
||||||
public function setAliases($mappings)
|
public function setAliases($aliases)
|
||||||
{
|
{
|
||||||
foreach ($mappings as $name => $alias)
|
foreach ($aliases as $name => $alias) {
|
||||||
{
|
\Yii::setAlias($name, $alias);
|
||||||
if (($path = Yii::getPathOfAlias($alias)) !== false)
|
|
||||||
Yii::setPathOfAlias($name, $path);
|
|
||||||
else
|
|
||||||
Yii::setPathOfAlias($name, $alias);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -436,7 +465,7 @@ abstract class Module extends Component
|
|||||||
/**
|
/**
|
||||||
* Loads static application components.
|
* Loads static application components.
|
||||||
*/
|
*/
|
||||||
protected function preloadComponents()
|
public function preloadComponents()
|
||||||
{
|
{
|
||||||
foreach ($this->preload as $id)
|
foreach ($this->preload as $id)
|
||||||
$this->getComponent($id);
|
$this->getComponent($id);
|
||||||
@@ -449,7 +478,7 @@ abstract class Module extends Component
|
|||||||
* Note that at this moment, the module is not configured yet.
|
* Note that at this moment, the module is not configured yet.
|
||||||
* @see init
|
* @see init
|
||||||
*/
|
*/
|
||||||
protected function preinit()
|
public function preinit()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,7 +489,7 @@ abstract class Module extends Component
|
|||||||
* have been attached and the application components have been registered.
|
* have been attached and the application components have been registered.
|
||||||
* @see preinit
|
* @see preinit
|
||||||
*/
|
*/
|
||||||
protected function init()
|
public function init()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8
todo.txt
8
todo.txt
@@ -1,3 +1,11 @@
|
|||||||
- CompareValidator::clientValidateAttribute(): search for "CHtml::activeId"
|
- CompareValidator::clientValidateAttribute(): search for "CHtml::activeId"
|
||||||
- FileValidator, UniqueValidator, ExistValidator, DateValidator: TBD
|
- FileValidator, UniqueValidator, ExistValidator, DateValidator: TBD
|
||||||
- Can consider merging UniqueValidator and ExistValidator and using a NOT property.
|
- Can consider merging UniqueValidator and ExistValidator and using a NOT property.
|
||||||
|
- design of component life cycles: init() and afterConstruct()
|
||||||
|
* construct object
|
||||||
|
* preinit
|
||||||
|
* attachBehaviors
|
||||||
|
* initialize properties
|
||||||
|
* init
|
||||||
|
* ...
|
||||||
|
* destruct
|
||||||
Reference in New Issue
Block a user