您的位置:首页 > 编程语言 > PHP开发

Class yii\base\Module

2017-03-08 00:00 295 查看
所有类 | 属性 | 方法 | 事件

继承yii\base\Module » yii\di\ServiceLocator » yii\base\Component » yii\base\Object
可用自版本2.0
模块模块和应用程序类的基类

一个模块代表一个子应用程序包含MVC元素本身,如模型、视图、控制器等.

一个模块可能由\yii\base\modules。

\yii\base\components 可能注册的模块,这样他们在全球范围内访问在模块。

更多细节和使用信息模块,请参阅指南文章模块

公共属性

隐藏继承属性

属性类型描述定义在
$controllerMaparray从控制器ID映射到控制器配置。yii\base\Module
$controllerNamespacestring控制器类的命名空间.yii\base\Module
$defaultRoutestring这个模块的默认路由.yii\base\Module
$idstring一个ID,惟一地标识此模块等模块有相同的父母yii\base\Module
$layoutstring|boolean布局应该申请的观点在这个模块。yii\base\Module
$moduleyii\base\Module这个模块的父模块。yii\base\Module
$paramsarray自定义模块参数(名称= >值)。yii\base\Module

公共方法

隐藏继承方法

方法描述定义在
__construct()Constructor.yii\base\Module
afterAction()调用该方法之后执行一个动作在这个模块yii\base\Module
beforeAction()这个方法被调用之前执行一个动作在这个模块。yii\base\Module
createController()创建一个控制器实例基于给定的路线。yii\base\Module
createControllerByID()创建一个控制器基于给定控制器ID。yii\base\Module
getBasePath()返回模块的根目录。yii\base\Module
getControllerPath()返回目录包含控制器类根据 $controllerNamespace.yii\base\Module
getInstance()返回当前请求的这个模块类的实例。yii\base\Module
getLayoutPath()返回包含此模块布局视图文件的目录。yii\base\Module
getModule()检索指定的子模块ID。yii\base\Module
getModules()返回此模块的子模块。yii\base\Module
getUniqueId()返回一个ID,惟一地标识此模块在所有模块在当前应用程序。yii\base\Module
getVersion()返回当前模块版本.yii\base\Module
getViewPath()返回包含此模块的视图文件的目录。yii\base\Module
hasModule()检查是否指定的子模块ID存在.yii\base\Module
init()初始化模块。yii\base\Module
runAction()运行一个控制器操作指定的路线。yii\base\Module
setAliases()定义了路径别名.yii\base\Module
setBasePath()设置模块的根目录.yii\base\Module
setInstance()设置当前请求这个模块类的实例.yii\base\Module
setLayoutPath()集包含布局文件的目录。yii\base\Module
setModule()添加一个sub-module这个模块。yii\base\Module
setModules()注册子模块在当前模块.yii\base\Module
setVersion()设置当前模块版本.yii\base\Module
setViewPath()集包含视图的目录文件。yii\base\Module

受保护的方法

隐藏继承方法

方法描述定义在
defaultVersion()返回默认模块版本.yii\base\Module

事件

隐藏继承事件

事件类型描述定义在
EVENT_AFTER_ACTIONyii\base\ActionEvent一个事件后执行一个控制器动作。yii\base\Module
EVENT_BEFORE_ACTIONyii\base\ActionEvent一个事件之前执行一个控制器动作。yii\base\Module

属性详情

$controllerMap public property

从控制器ID映射到控制器配置。每一个名称-值对将指定一个控制器的配置。一个控制器配置可以是一个字符串或一个数组。如果是前者,字符串应该是控制器的完全限定类名。如果是后者,必须包含一个数组类元素指定控制器的全限定类名,和其余的名称-值对数组是用来初始化相应的控制器性能。例如,

[
'account' => 'app\controllers\UserController',
'article' => [
'class' => 'app\controllers\PostController',
'pageTitle' => 'something new',
],
]

public array $controllerMap = []

$controllerNamespace public property

控制器类的命名空间。这个名称空间将用于负载控制器类通过将控制器类的名字.

如果没有设置,那么将使用
controllers
sub-namespace下这个模块的名称空间。例如,如果这个模块的名称空间是
foo\bar
,,然后默认控制器名称空间将
foo\bar\controllers
.

参见指南部分半自动的定义名称空间和更多地了解如何装载类。

public string $controllerNamespace = null

$defaultRoute public property

这个模块的默认路由。默认为违约。子模块ID,控制器的路线可能由ID,ID和/或行动。例如,帮助,
post/create
admin/post/create
.。如果行动ID不是给定的,它将默认值指定yii\base\Controller::$defaultAction.

public string $defaultRoute = 'default'

$id public property

一个ID,惟一地标识此模块等模块有相同的父母

public string $id = null

$layout public property

布局应该申请的观点在这个模块。这是指一个视图名相对\yii\base\layoutPath.基地。如果没有设置,这意味着布局的价值将父模块。如果这是假的,在这个模块布局将被禁用。

public string|boolean $layout = null

$module public property

这个模块的父模块。空如果这个模块没有父母.

public yii\base\Module $module = null

$params public property

Custom module parameters (name => value).

public array $params = []

方法详情

__construct() public 方法

Constructor.

public void __construct ( $id, $parent = null, $config = [] )
$idstring这个模块的ID。
$parentyii\base\Module父模块(如果有的话)。
$configarray名称-值对将用于初始化对象的属性
afterAction() public 方法

调用该方法之后执行一个动作在这个模块

该方法将触发EVENT_AFTER_ACTION事件。该方法的返回值将被用作操作的返回值.

如果你重写此方法,您的代码应该像下面这样:

public function afterAction($action, $result)
{
$result = parent::afterAction($action, $result);
// your custom code here
return $result;
}

public mixed afterAction ( $action, $result )
$actionyii\base\Action执行的行动。
$resultmixed操作返回结果。
returnmixed处理行动的结果.
beforeAction() public 方法

这个方法被调用之前执行一个动作在这个模块.

该方法将触发EVENT_BEFORE_ACTION事件。方法的返回值将决定行为应该继续运行。

行动不应该运行的,请求应beforeAction代码的内部处理提供必要的输出或重定向请求。否则响应将是空的。

如果你重写此方法,您的代码应该类似于下面的:

public function beforeAction($action)
{
if (!parent::beforeAction($action)) {
return false;
}

// your custom code here

return true; // or false to not run the action
}

public boolean beforeAction ( $action )
$actionyii\base\ActionThe action to be executed.
returnbooleanWhether the action should continue to be executed.
createController() public 方法

创建一个控制器实例基于给定的路线。

路线应该是相对于这个模块。该方法实现了以下算法解决给定的路线:

如果路径是空的,使用 $defaultRoute;

如果第一段的路线是一个有效的模块中声明的ID作为 \yii\base\modules,调用模块的
createController()
与其他路线的一部分

如果第一段的路由发现$controllerMap,创建一个控制器基于相应的配置中发现$controllerMap;

给定的路线是在美国广播公司(abc)的格式/ def / xyz。试着abc \ DefController或abc \ def \ XyzController类控制器名称空间内。

如果上述步骤解析到一个控制器,它返回与其余部分的路线将被视为行动ID。否则,将返回false。

public array|boolean createController ( $route )
$routestring路线组成模块,控制器和操作id.
returnarray|boolean如果控制器创建成功,它将返回与所请求的操作ID,否则将返回false。
throwsyii\base\InvalidConfigException如果控制器类及其文件不匹配。
createControllerByID() public 方法

创建一个控制器基于给定控制器ID.

相对于这个模块控制器ID。控制器类应该是名称空间 $controllerNamespace.

注意,这个方法不会检查\yii\base\modules or $controllerMap.

public yii\base\Controller createControllerByID ( $id )
$idstring控制器ID。
returnyii\base\Controller新创建的控制器实例,或null如果控制器ID无效
throwsyii\base\InvalidConfigException如果控制器类和它的文件名不匹配。这只是在调试模式下时抛出异常。
defaultVersion() protected 方法 (可用自版本 2.0.11)

返回默认模块版本。

子类可以重写此方法提供更具体的版本检测.

protected string defaultVersion ( )
returnstring这个模块的版本.
getBasePath() public 方法

返回模块的根目录。

它包含模块类文件的默认目录。

public string getBasePath ( )
returnstring的根目录模块.
getControllerPath() public 方法

返回目录包含控制器类根据 $controllerNamespace.

请注意,为了使这个方法返回一个值,您必须定义一个别名$controllerNamespace.的根名称空间。

public string getControllerPath ( )
returnstring该目录包含控制器类。
throwsyii\base\InvalidParamException如果没有为 $controllerNamespace的根名称空间定义的别名。
getInstance() public static 方法

返回当前请求的这个模块类的实例。

如果模块类是目前没有要求,将返回null。这种方法提供了,这样你从任何地方访问模块实例内的模块.

public static static|null getInstance ( )
returnstatic|null当前请求这个模块类的实例,或者零如果没有请求模块类。
getLayoutPath() public 方法

返回包含此模块布局视图文件的目录。

public string getLayoutPath ( )
returnstring布局文件的根目录。默认为“基础 "\yii\base\viewPath/layouts".
getModule() public 方法

检索指定的子模块ID。

这种方法支持检索两个子模块和子模块.

参见 hasModule().

public yii\base\Module|null getModule ( $id, $load = true )
$idstring模块ID(区分大小写)。检索子模块,使用ID路径相对于这个模块 (e.g.
admin/content
).
$loadboolean是否加载模块如果没有加载。
returnyii\base\Module|null模块实例,零如果模块不存在
getModules() public 方法

Returns the sub-modules in this module.

public array getModules ( $loadedOnly = false )
$loadedOnlyboolean是否返回加载子模块。如果这是错误的,那么将返回所有子模块注册模块,是否加载。加载模块会返回对象,而卸载模块配置阵列。
returnarray的模块,通过其id(索引).
getUniqueId() public 方法

返回一个ID,惟一地标识此模块在所有模块在当前应用程序

请注意,如果该模块是一个应用程序,将返回一个空字符串.

public string getUniqueId ( )
returnstring模块的惟一ID
getVersion() public 方法 (可用自版本 2.0.11)

返回当前模块版本

如果没有显式地设置版本,defaultVersion()方法将用于确定其价值。

public string getVersion ( )
returnstring这个模块的版本.
getViewPath() public 方法

返回包含此模块的视图文件的目录

public string getViewPath ( )
returnstring视图文件的根目录。默认为“基础\ "\yii\base\basePath/views".
hasModule() public 方法

检查是否指定的子模块ID存在。

这种方法支持检查存在的两个孩子,大孩子模块

public boolean hasModule ( $id )
$idstring为大孩子模块ID。模块,使用ID路径相对于这个模块(例如admin /内容)。
returnboolean是否存在指定的模块。加载和卸载模块。
init() public 方法

初始化模块

调用此方法后,模块与给定属性值创建并初始化配置。默认实现将初始化$controllerNamespace如果不设置。

如果你重写这个方法,请确保你调用父实现.

public void init ( )
runAction() public 方法

运行一个控制器操作指定的路线

该方法解析指定的路线和创建相应的子模块(s),控制器和操作实例。然后调用yii\base\Controller::runAction()与给定的运行操作参数。如果路径为空,该方法将使用 $defaultRoute.

public mixed runAction ( $route, $params = [] )
$routestring指定了行动的路线。
$paramsarray参数被传递到行动
returnmixed行动的结果。
throwsyii\base\InvalidRouteException如果所请求的路径不能被解析成一个行动成功.
setAliases() public 方法

定义了路径别名。

这个方法调用Yii:setAlias()注册路径别名。这种方法提供,这样您就可以定义路径别名配置模块。

public void setAliases ( $aliases )
$aliasesarray路径别名定义列表。数组的键是别名(必须从@)和数组值对应的路径或别名。例如,
[
'@models' => '@app/models', // an existing alias
'@backend' => __DIR__ . '/../backend',  // a directory
]
setBasePath() public 方法

设置模块的根目录.

这种方法只能在调用构造函数的开始.

public void setBasePath ( $path )
$pathstring的根目录模块。这可以是一个目录名称或路径别名.
throwsyii\base\InvalidParamException如果目录不存在.
setInstance() public static 方法

设置当前请求这个模块类的实例。

public static void setInstance ( $instance )
$instanceyii\base\Module|null当前请求的这个模块类的实例。如果是null,调用类的实例将被删除,如果任何。
setLayoutPath() public 方法

集包含布局文件的目录。

public void setLayoutPath ( $path )
$pathstring布局文件的根目录或路径别名。
throwsyii\base\InvalidParamException如果目录是无效的
setModule() public 方法

添加一个sub-module这个模块.

public void setModule ( $id, $module )
$idstring模块ID
$moduleyii\base\Module|array|nullsub-module被添加到这个模块。这可能是下列之一:

a yii\base\Module object

配置阵列:当getModule()最初,数组将被用来实例化sub-module

null:这个模块的命名sub-module将被删除

setModules() public 方法

注册子模块在当前模块。

每个sub-module应该指定为一个名称-值对,,名字是指模块和价值模块的ID或配置阵列,可用于创建模块。在后一种情况下,Yii:createObject()将用于创建的模块

如果一个新的sub-module相同的ID作为一个现有的,现有一个默默地将被重写。

下面是一个示例注册两个子模块:

[
'comment' => [
'class' => 'app\modules\comment\CommentModule',
'db' => 'db',
],
'booking' => ['class' => 'app\modules\booking\BookingModule'],
]

public void setModules ( $modules )
$modulesarray模块单元(id = >配置然而论坛).
setVersion() public 方法 (可用自版本 2.0.11)

设置当前模块版本。

public void setVersion ( $version )
$versionstring|callable这个模块的版本。可以指定一个PHP版本回调,可以接受模块实例作为参数,应该返回实际的版本。例如:
function (Module $module) {
//return string
}
setViewPath() public 方法

集包含视图的目录文件.

public void setViewPath ( $path )
$pathstring视图文件的根目录。
throwsyii\base\InvalidParamException如果目录是无效的。

事件详情

EVENT_AFTER_ACTION yii\base\ActionEvent基础类型的事件 一个事件后执行一个控制器动作。

EVENT_BEFORE_ACTION yii\base\ActionEvent基础类型的事件

一个事件之前执行一个控制器动作。你可以设置yii \基地\ ActionEvent::$ isValid是错误的取消操作执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: